Seu primeiro script
Escreva um pequeno script Lua que desenha um sol, execute-o, desfaça-o e salve-o.
Scripts são pequenos programas em Lua que desenham e editam seu sprite por você: tudo o que você faz com as ferramentas, um script faz com código. Aqui você vai escrever um que desenha um sol em uma nova camada. Leva uns cinco minutos, e você não precisa ter programado antes.
Crie um script
Abra um sprite (um novo de 32×32 serve) e escolha Scripts > Novo script.... Dê o nome "Sun" ao script e clique em Criar.
O painel Scripts abre com algumas linhas de comentário (linhas que começam com --, que o Lua
ignora). Ele tem um editor de código, uma barra de ferramentas no topo e uma área de saída na parte de baixo. No
layout padrão, ele fica acoplado à direita da tela, para você ver os dois ao mesmo tempo (você pode movê-lo
como qualquer painel: veja O espaço de trabalho).


Escreva o código
Substitua os comentários por isto:
-- 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.")O que ele faz:
app.addLayeradiciona uma camada chamada "Sun" e devolve o id dela;app.getActiveFrameIddevolve o quadro em que você está. Todo comando de desenho recebe uma camada e um quadro, assim como uma ferramenta pinta na camada ativa no quadro atual.app.getCanvasWidtheapp.getCanvasHeightleem o tamanho do sprite, então o sol cabe em qualquer tela. As coordenadas são em pixels, com (0, 0) no canto superior esquerdo.app.drawLineeapp.drawEllipsefuncionam exatamente como as ferramentas Linha e Elipse. Tudo o que você não informa (aqui, o pincel) vem das configurações da ferramenta atual.printescreve uma linha na área de saída.
Enquanto você digita, o editor sugere funções app.; aponte para uma para ler o que ela faz.
Execute
Clique em Executar (o botão de play) na barra de ferramentas do painel. A área de saída diz "Drew a sun 17 pixels across.", e a linha do tempo ganha uma nova camada, "Sun", com o sol na tela ao lado do painel.
Se algo der errado, a área de saída mostra o erro e a linha em que ele aconteceu fica destacada. Corrija e execute de novo.
Desfaça
Tudo o que uma execução muda é um único passo de desfazer: use Ctrl+Z e a camada e o sol somem
juntos. Mude uma cor ou o + 5 que define o comprimento dos raios, e execute de novo.
Salve
Clique em Salvar rascunho (o botão de disquete). O script é salvo neste navegador, como seus sprites,
e um * depois do nome no painel indica alterações não salvas. Para abri-lo de novo mais tarde, escolha
Scripts > Abrir meu script...; os últimos cinco scripts que você abriu também aparecem logo abaixo dele no
menu Scripts.
Publicar compartilha um script na biblioteca de scripts; é preciso ter uma conta com o Sync (veja o guia de scripting).
Próximos passos
- O guia de scripting explica como executar, interromper, janelas de script, comandos de script e os geradores oficiais.
- A API de scripting lista todas as funções
app., agrupadas pelo que fazem: desenho, camadas, quadros, cálculo de cores e mais.