Скрипты
У 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);