Tu primer script
Escribe un script corto en Lua que dibuja un sol, ejecútalo, deshazlo y guárdalo.
Los scripts son pequeños programas en Lua que dibujan y editan tu sprite por ti: todo lo que puedes hacer con las herramientas, un script lo puede hacer con código. Aquí vas a escribir uno que dibuja un sol en una capa nueva. Lleva unos cinco minutos, y no necesitas haber programado antes.
Crear un script
Abre un sprite (uno nuevo de 32×32 sirve) y elige Scripts > Nuevo script.... Ponle al script el nombre "Sun" y pulsa Crear.
Se abre el panel Scripts con unas líneas de comentario (líneas que empiezan con --, que Lua
ignora). Tiene un editor de código, una barra de herramientas arriba y un área de salida abajo. En la
disposición predeterminada se acopla a la derecha del lienzo, así que puedes ver ambos a la vez
(puedes moverlo como cualquier panel: consulta El espacio de trabajo).


Escríbelo
Reemplaza los comentarios con esto:
-- Draws a sun on a new layer.
local layer = app.addLayer("Sun")
local frame = app.getActiveFrameId()
local w, h = app.getCanvasWidth(), app.getCanvasHeight()
local cx, cy = w // 2, h // 2
local r = math.min(w, h) // 4
-- the rays: eight short lines around the middle
for i = 0, 7 do
local a = i * math.pi / 4
app.drawLine(layer, frame,
cx + math.floor(math.cos(a) * (r + 2) + 0.5), cy + math.floor(math.sin(a) * (r + 2) + 0.5),
cx + math.floor(math.cos(a) * (r + 5) + 0.5), cy + math.floor(math.sin(a) * (r + 5) + 0.5),
{ color = "#f4a52e" })
end
-- the disc
app.drawEllipse(layer, frame, cx - r, cy - r, cx + r, cy + r, { color = "#ffd34e", fill = "filled" })
print("Drew a sun " .. (r * 2 + 1) .. " pixels across.")Qué hace:
app.addLayerañade una capa llamada "Sun" y devuelve su id;app.getActiveFrameIddevuelve el fotograma en el que estás. Todos los comandos de dibujo reciben una capa y un fotograma, igual que una herramienta pinta en la capa activa en el fotograma actual.app.getCanvasWidthyapp.getCanvasHeightleen el tamaño del sprite, así que el sol cabe en cualquier lienzo. Las coordenadas son píxeles, con (0, 0) en la esquina superior izquierda.app.drawLineyapp.drawEllipsefuncionan exactamente como las herramientas Línea y Elipse. Todo lo que no pases (aquí, el pincel) sale de los ajustes de la herramienta actual.printescribe una línea en el área de salida.
Mientras escribes, el editor sugiere funciones de app.; señala una para leer qué hace.
Ejecútalo
Pulsa Ejecutar (el botón de reproducir) en la barra de herramientas del panel. El área de salida dice "Drew a sun 17 pixels across.", y la línea de tiempo tiene una capa nueva, "Sun", con el sol en el lienzo junto al panel.
Si algo falla, el área de salida muestra el error y se resalta la línea donde ocurrió. Corrígelo y vuelve a ejecutar.
Deshazlo
Todo lo que cambia una ejecución es un solo paso de deshacer: pulsa Ctrl+Z y la capa y el sol
desaparecen juntos. Cambia un color o el + 5 que define la longitud de los rayos, y ejecútalo de
nuevo.
Guárdalo
Pulsa Guardar borrador (el botón del disquete). El script se guarda en este navegador, igual que
tus sprites, y un * después de su nombre en el panel indica cambios sin guardar. Para abrirlo de
nuevo más tarde, elige Scripts > Abrir mi script...; los últimos cinco scripts que abriste también aparecen
justo debajo en el menú Scripts.
Publicar comparte un script en la biblioteca de scripts; necesita una cuenta con Sync (consulta la guía de scripting).
Siguientes pasos
- La guía de scripting explica cómo ejecutar, detener, las ventanas de script, los comandos de script y los generadores oficiales.
- La API de scripting lista todas las funciones de
app., agrupadas por lo que hacen: dibujo, capas, fotogramas, matemáticas del color y más.