A Ambersprite
ENTRDEFRESITPTRUJA

Betikler

Ambersprite'ın tekrarlayan piksel işleri için küçük bir JavaScript konsolu var. Düzen ▸ Betikler ile açın.

Betik sayfası
Betik sayfası

Bir betik yazın, Çalıştır'a dokunun. Etkin katman + kareye boyar ve "Betik" adlı tek bir geri alma adımı olarak sabitler. Temizle, düzenleyiciyi boşaltır.

API#

İşlevAçıklama
setPixel(x, y, r, g, b, a)(x, y) konumundaki pikseli bir RGBA rengine ayarla (her biri 0–255).
getPixel(x, y)Pikselin [r, g, b, a] değerini döndürür.
fill(x, y)(x, y)'den geçerli ön plan rengiyle, aracın bitişik / tolerans / tramlama ayarlarını gözeterek taşkın doldurma yapar.
fg(r, g, b, a)Ön plan rengini ayarla.
setLayer(index)Etkin katmanı değiştir.
setFrame(index)Etkin kareyi değiştir.
newLayer()Bir katman ekle.
command("name")Bir klavye kısayolu komutunu ada göre çalıştır ("undo", "flipH", "play", …).
log(message)Çıktı alanına yaz.
DeğerAçıklama
width, heightTuval boyutu.
layerCount, frameCountSayılar.
layerIndex, frameIndexEtkin indeksler.
layerNameEtkin katman adı.

setPixel ve fill her zaman Çalıştır'a basıldığında etkin olan katman + kareyi hedefler — betik ortasında setLayer() / setFrame() çağırmak, geçerli boya hedefini değil sonraki çalıştırma için etkin seçimi değiştirir. Birkaç katmanı doldurmak için her birini zaman çizelgesinde seçin ve kendi betiğini çalıştırın.

Örnekler#

Bir dama tahtası çiz:

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

Dış çizgili bir bölgeyi ön plan rengiyle doldur:

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

Dolgulu dikdörtgenler için yardımcı:

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