Il tuo primo script
Scrivi un breve script Lua che disegna un sole, eseguilo, annullalo e salvalo.
Gli script sono piccoli programmi Lua che disegnano e modificano lo sprite al posto tuo: tutto quello che puoi fare con gli strumenti, uno script lo può fare con il codice. Qui vediamo come scriverne uno che disegna un sole su un nuovo livello. Richiede circa cinque minuti, e non serve aver mai programmato.
Crea uno script
Apri uno sprite (va bene uno nuovo da 32×32) e scegli Script > Nuovo script.... Dai allo script il nome "Sun" e premi Crea.
Si apre il pannello Script con alcune righe di commento (righe che iniziano con --, che Lua
ignora). Ha un editor di codice, una barra degli strumenti in alto e un'area di output in basso.
Nel layout predefinito è ancorato a destra della tela, così vedi entrambi insieme (puoi spostarlo
come qualsiasi pannello: vedi L'area di lavoro).


Scrivilo
Sostituisci i commenti con questo:
-- 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.")Cosa fa:
app.addLayeraggiunge un livello chiamato "Sun" e ne restituisce l'id;app.getActiveFrameIdrestituisce il fotogramma in cui ti trovi. Ogni comando di disegno richiede un livello e un fotogramma, come uno strumento dipinge sul livello attivo nel fotogramma corrente.app.getCanvasWidtheapp.getCanvasHeightleggono le dimensioni dello sprite, così il sole sta in qualsiasi tela. Le coordinate sono in pixel, con (0, 0) nell'angolo in alto a sinistra.app.drawLineeapp.drawEllipsefunzionano esattamente come gli strumenti Linea e Ellisse. Tutto ciò che non passi (qui, il pennello) viene dalle impostazioni correnti dello strumento.printscrive una riga nell'area di output.
Mentre scrivi, l'editor suggerisce le funzioni app.; punta il cursore su una per leggere cosa fa.
Eseguilo
Premi Esegui (il pulsante play) nella barra degli strumenti del pannello. L'area di output dice "Drew a sun 17 pixels across.", e la timeline ha un nuovo livello, "Sun", con il sole sulla tela accanto al pannello.
Se qualcosa non va, l'area di output mostra l'errore e la riga in cui è avvenuto viene evidenziata. Correggilo ed esegui di nuovo.
Annullalo
Tutto ciò che un'esecuzione modifica è un solo passo di annullamento: premi Ctrl+Z e il
livello e il sole spariscono insieme. Cambia un colore o il + 5 che imposta la lunghezza dei
raggi, ed esegui di nuovo.
Salvalo
Premi Salva bozza (il pulsante disco). Lo script viene salvato in questo browser, come i tuoi
sprite, e un * dopo il suo nome nel pannello indica modifiche non salvate. Per riaprirlo più
tardi, scegli Script > Apri il mio script...; anche gli ultimi cinque script aperti sono elencati subito sotto
nel menu Script.
Pubblica condivide uno script nella libreria di script; serve un account con Sync (vedi la guida allo scripting).
Passi successivi
- La guida allo scripting copre esecuzione, arresto, finestre degli script, comandi degli script e i generatori ufficiali.
- La API di scripting elenca ogni funzione
app., raggruppata per ciò che fa: disegno, livelli, fotogrammi, matematica dei colori e altro.