A Ambersprite
ENTRDEFRESITPTRUJA

スクリプト

Ambersprite には、繰り返しのピクセル作業のための小さな JavaScript コンソールがあります。編集 ▸ スクリプト で開きます。

スクリプトシート
スクリプトシート

スクリプトを入力し、実行 をタップします。アクティブなレイヤー + フレーム に描画し、「Script」という名前の 1 つの取り消しステップとして確定します。クリア はエディターを空にします。

API#

関数説明
setPixel(x, y, r, g, b, a)(x, y) のピクセルを RGBA 色(各 0–255)に設定。
getPixel(x, y)ピクセルの [r, g, b, a] を返す。
fill(x, y)(x, y) から現在の前景色で塗りつぶし。ツールの隣接 / 許容値 / ディザリング設定に従う。
fg(r, g, b, a)前景色を設定。
setLayer(index)アクティブなレイヤーを変更。
setFrame(index)アクティブなフレームを変更。
newLayer()レイヤーを追加。
command("name")キーボードショートカットのコマンドを名前で実行("undo""flipH""play"、…)。
log(message)出力エリアに書き込む。
説明
width, heightキャンバスサイズ。
layerCount, frameCount数。
layerIndex, frameIndexアクティブなインデックス。
layerNameアクティブなレイヤー名。

setPixelfill は常に、「実行」を押した時点で アクティブだったレイヤー + フレームを対象にします — スクリプトの途中で setLayer() / setFrame() を呼ぶと、現在の描画対象ではなく 次の 実行のためのアクティブな選択が変わります。複数のレイヤーを塗るには、タイムラインでそれぞれを選び、その独自のスクリプトを実行します。

#

市松模様を描く:

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);

輪郭のある領域を前景色で塗る:

fg(230, 120, 60, 255);
fill(width / 2, height / 2);
log("done");

塗りつぶし矩形のヘルパー:

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);