Scripts
O Ambersprite tem um pequeno console JavaScript para trabalho repetitivo com pixels. Abra-o com Editar ▸ Scripts.

Digite um script, toque em Executar. Ele pinta na camada + frame ativo e é confirmado como um único passo de desfazer chamado «Script». Limpar esvazia o editor.
API#
| Função | Descrição |
|---|---|
setPixel(x, y, r, g, b, a) | Definir o pixel em (x, y) para uma cor RGBA (0–255 cada). |
getPixel(x, y) | Retorna [r, g, b, a] do pixel. |
fill(x, y) | Preenchimento por difusão a partir de (x, y) com a cor de primeiro plano atual, respeitando os ajustes contíguo / tolerância / dithering da ferramenta. |
fg(r, g, b, a) | Definir a cor de primeiro plano. |
setLayer(index) | Mudar a camada ativa. |
setFrame(index) | Mudar o frame ativo. |
newLayer() | Adicionar uma camada. |
command("name") | Executar um comando de atalho de teclado por nome ("undo", "flipH", "play", …). |
log(message) | Escrever na área de saída. |
| Valor | Descrição |
|---|---|
width, height | Tamanho da tela. |
layerCount, frameCount | Contagens. |
layerIndex, frameIndex | Índices ativos. |
layerName | Nome da camada ativa. |
setPixel e fill sempre miram a camada + frame que estava ativo quando «Executar» foi pressionado — chamar setLayer() / setFrame() no meio do script muda a seleção ativa para a próxima execução, não o alvo de pintura atual. Para preencher várias camadas, selecione cada uma na linha do tempo e execute o script dela.
Exemplos#
Desenhar um xadrez:
for (var y = 0; y < height; y++)
for (var x = 0; x < width; x++)
if ((x + y) % 2 === 0) setPixel(x, y, 40, 40, 60, 255);
Preencher uma região delimitada com a cor de primeiro plano:
fg(230, 120, 60, 255);
fill(width / 2, height / 2);
log("done");
Função auxiliar para retângulos preenchidos:
function rect(x0, y0, x1, y1, r, g, b) {
for (var y = y0; y <= y1; y++)
for (var x = x0; x <= x1; x++) setPixel(x, y, r, g, b, 255);
}
rect(4, 4, 12, 20, 60, 122, 204);