A Ambersprite
ENTRDEFRESITPTRUJA

Skripte

Ambersprite hat eine kleine JavaScript-Konsole für wiederkehrende Pixelarbeit. Öffne sie mit Bearbeiten ▸ Skripte.

Das Skript-Blatt
Das Skript-Blatt

Tippe ein Skript, tippe auf Ausführen. Es malt in die aktive Ebene + Frame und wird als ein einziger Rückgängig-Schritt namens „Script" festgelegt. Löschen leert den Editor.

API#

FunktionBeschreibung
setPixel(x, y, r, g, b, a)Das Pixel bei (x, y) auf eine RGBA-Farbe setzen (je 0–255).
getPixel(x, y)Gibt [r, g, b, a] des Pixels zurück.
fill(x, y)Flutfüllung von (x, y) mit der aktuellen Vordergrundfarbe, unter Beachtung der Einstellungen Zusammenhängend / Toleranz / Dithering des Werkzeugs.
fg(r, g, b, a)Die Vordergrundfarbe setzen.
setLayer(index)Die aktive Ebene wechseln.
setFrame(index)Den aktiven Frame wechseln.
newLayer()Eine Ebene hinzufügen.
command("name")Einen Tastaturkürzel-Befehl per Name ausführen ("undo", "flipH", "play", …).
log(message)In den Ausgabebereich schreiben.
WertBeschreibung
width, heightLeinwandgröße.
layerCount, frameCountAnzahlen.
layerIndex, frameIndexAktive Indizes.
layerNameName der aktiven Ebene.

setPixel und fill zielen immer auf die Ebene + den Frame, die aktiv waren, als „Ausführen" gedrückt wurdesetLayer() / setFrame() mitten im Skript aufzurufen ändert die aktive Auswahl für den nächsten Lauf, nicht das aktuelle Malziel. Um mehrere Ebenen zu füllen, wähle jede in der Zeitleiste aus und führe ihr eigenes Skript aus.

Beispiele#

Ein Schachbrett zeichnen:

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

Eine umrissene Region mit der Vordergrundfarbe füllen:

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

Hilfsfunktion für gefüllte Rechtecke:

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