A Ambersprite
ENTRDEFRESITPTRUJA

Scripts

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

A folha Script
A folha Script

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çãoDescriçã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.
ValorDescrição
width, heightTamanho da tela.
layerCount, frameCountContagens.
layerIndex, frameIndexÍndices ativos.
layerNameNome 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);