Перейти к содержимому

Цвет и прозрачность

Цвет — это состояние, а не свойство фигуры: выбрали один раз, и он держится до следующего раза

среднийНужно знать: Первый рисунок, Арифметика
тик 0
Рисование0
rgb
Рисование1
rgb
a
Рисование2
xy
ширинавысота
Рисование3
rgb
a
Рисование4
xy
ширинавысота
Упаковать цвет5
= pack
Рисование6
цвет
Рисование7
xy
ширинавысота
Вывод рисования8
Стоп9
@counter0number
цветnullnull

Три квадрата, и каждый задан своим способом. Красный — непрозрачный, зелёный — наполовину прозрачный, синий взят готовым числом.

draw color 255 180 60 255

Красный, зелёный, синий и непрозрачность: 255 — совсем плотный, 0 — невидимый, 128 — сквозь него видно то, что нарисовано раньше.

Что задаём Поле Пределы
красный первое 0–255
зелёный второе 0–255
синий третье 0–255
непрозрачность четвёртое 0–255

Дробное число отбрасывает дробь: 180.9 это 180.

Цвет — не свойство фигуры, а состояние дисплея. Поставили color — все следующие фигуры будут этого цвета, хоть одна, хоть двадцать.

draw color 255 60 60 255
draw rect 10 10 40 40
draw rect 60 10 40 40
draw rect 110 10 40 40

Три красных квадрата, один color. Это же и ловушка: забыли сменить цвет перед вторым рисунком — и он нарисуется цветом первого.

packcolor цвет 0.2 0.5 1 0.6
draw col цвет

col берёт одно число, в котором упакованы все четыре канала. Само число готовит инструкция packcolor, и доли у неё не от 255, а от нуля до единицы.

draw color draw col
сколько полей четыре одно
каналы 0–255 0–1 (через packcolor)
когда удобнее когда цвет записан прямо в программе когда цвет лежит в переменной или пришёл откуда-то

Упакованный цвет — обычное число, и с ним можно обращаться как с числом: хранить в ячейке памяти, передавать соседнему процессору, выбирать select-ом из двух заготовленных.

Прозрачность рисует поверх, а не смешивает заранее

Заголовок раздела «Прозрачность рисует поверх, а не смешивает заранее»

Полупрозрачная фигура смешивается с тем, что уже нарисовано на дисплее. Поэтому порядок команд решает всё: сначала фон, потом то, что поверх.

Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.