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

Draw

draw устроен как print: он не рисует, а дописывает команду в буфер процессора. Картинка появляется, когда буфер отдают дисплею — этим занимается drawflush.

Одна инструкция, а за ней шестнадцать разных команд: залить фон, выбрать цвет, провести линию, поставить многоугольник, написать текст, сдвинуть начало координат. Поля у них общие и от команды к команде значат разное — отсюда и уроки по одной теме за раз.

Блок Сторона картинки Место на карте
логический дисплей 80 точек 3×3
большой логический дисплей 176 точек 6×6

Точка дисплея — не тайл карты и не пиксель экрана: у картинки своя сетка, и её размер лучше спрашивать у самого блока (sensor @displayWidth), а не вписывать числом.

Начало координат — левый нижний угол, ось Y идёт вверх. Это не как в браузере и не как в редакторе карт, зато как в самой игре.

  1. Первый рисунокЧетыре строки — и на дисплее появляется прямоугольник. Без последней из них не появляется ничего
  2. Фигуры и линииФигур шесть, и каждая просит свои числа: где-то угол, где-то середина, где-то радиус
  3. Цвет и прозрачностьЦвет — это состояние, а не свойство фигуры: выбрали один раз, и он держится до следующего раза
  4. Текст и картинкиТекст на дисплей попадает из того же буфера, что и в блок сообщений, — но кириллицы в нём не будет
  5. Сдвиг, поворот, масштабПроще не пересчитывать каждую точку, а сдвинуть саму сетку — и рисовать в ней как в первый раз

«Текстовый буфер» — на нём устроен тот же приём «копим, потом отдаём», и он же нужен, чтобы написать что-нибудь на дисплее.

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