Draw
draw устроен как print: он не рисует, а дописывает команду в буфер процессора.
Картинка появляется, когда буфер отдают дисплею — этим занимается
drawflush.
Одна инструкция, а за ней шестнадцать разных команд: залить фон, выбрать цвет, провести линию, поставить многоугольник, написать текст, сдвинуть начало координат. Поля у них общие и от команды к команде значат разное — отсюда и уроки по одной теме за раз.
Что рисуем
Заголовок раздела «Что рисуем»| Блок | Сторона картинки | Место на карте |
|---|---|---|
| логический дисплей | 80 точек | 3×3 |
| большой логический дисплей | 176 точек | 6×6 |
Точка дисплея — не тайл карты и не пиксель экрана: у картинки своя сетка, и её размер лучше
спрашивать у самого блока (sensor @displayWidth), а не вписывать числом.
Начало координат — левый нижний угол, ось Y идёт вверх. Это не как в браузере и не как в редакторе карт, зато как в самой игре.
- Первый рисунокЧетыре строки — и на дисплее появляется прямоугольник. Без последней из них не появляется ничего
- Фигуры и линииФигур шесть, и каждая просит свои числа: где-то угол, где-то середина, где-то радиус
- Цвет и прозрачностьЦвет — это состояние, а не свойство фигуры: выбрали один раз, и он держится до следующего раза
- Текст и картинкиТекст на дисплей попадает из того же буфера, что и в блок сообщений, — но кириллицы в нём не будет
- Сдвиг, поворот, масштабПроще не пересчитывать каждую точку, а сдвинуть саму сетку — и рисовать в ней как в первый раз
Что нужно знать заранее
Заголовок раздела «Что нужно знать заранее»«Текстовый буфер» — на нём устроен тот же приём «копим, потом отдаём», и он же нужен, чтобы написать что-нибудь на дисплее.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.