Цвет и прозрачность
Цвет — это состояние, а не свойство фигуры: выбрали один раз, и он держится до следующего раза
Три квадрата, и каждый задан своим способом. Красный — непрозрачный, зелёный — наполовину прозрачный, синий взят готовым числом.
color: четыре числа от 0 до 255
Заголовок раздела «color: четыре числа от 0 до 255»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 255draw rect 10 10 40 40draw rect 60 10 40 40draw rect 110 10 40 40Три красных квадрата, один color. Это же и ловушка: забыли сменить цвет перед вторым
рисунком — и он нарисуется цветом первого.
col: цвет одним числом
Заголовок раздела «col: цвет одним числом»packcolor цвет 0.2 0.5 1 0.6draw 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.