A Ambersprite
ENTRDEFRESITPTRUJA

Скрипты

У Ambersprite есть небольшая консоль JavaScript для повторяющейся работы с пикселями. Откройте её через Правка ▸ Скрипты.

Лист Скрипт
Лист Скрипт

Введите скрипт, нажмите Запустить. Он рисует в активный слой + кадр и фиксируется как один шаг отмены с именем «Script». Очистить опустошает редактор.

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Имя активного слоя.

setPixel и fill всегда нацелены на слой + кадр, которые были активны в момент нажатия «Запустить» — вызов 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);