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

Что во что печатается

Печатать можно что угодно — и почти всё превращается в текст не так, как ждёшь

простоНужно знать: Текстовый буфер, Пустота: null

print берёт любое значение, а буфер — только текст. Значит, где-то посередине происходит превращение, и знать его правила стоит: половина странных надписей на дисплеях родом отсюда.

тик 0
Печать0
Печать1
Печать2
Печать3
Печать4
Печать5
Печать6
@counter0number
пустоnullnull
textBufferstring

Нажмите «шаг» семь раз. В буфере окажется copper container null 0.5.

Что печатаем Что попадает в буфер
число, отличающееся от целого меньше чем на 0.00001 целое без дробной части: 120
остальные числа как есть: 0.5, 3.25
строка сама строка, без кавычек
предмет, жидкость, блок, тип юнита английское имя: copper, titanium-conveyor
здание имя его блока: container, а не container1
юнит имя его типа: poly
команда имя команды: sharded
пустота слово null

Это первое, что удивляет. print container1 даёт container, а не container1.

Причина простая: имя связи принадлежит процессору, а не блоку. В самом здании такого имени нет вовсе — это ваша пометка в вашей программе, и соседний процессор может звать тот же контейнер иначе. Печатать нечего, кроме типа блока. Про имена связей — урок «Связи и getlink».

print от null кладёт в буфер четыре буквы: null. Ни пустоты, ни нуля — именно слово.

Числа печатаются как в таблице переменных

Заголовок раздела «Числа печатаются как в таблице переменных»

Правило то же самое и порог тот же: 0.00001. Отличается число от целого меньше — печатается целое, больше — полная запись, со всеми символами после запятой.

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

Из этого следует вещь, которая портит табло: op div доля 1 3 напечатается как 0.3333333333333333. Округлять надо самому — op round, op floor или умножение с делением, и об этом урок «Целые и точность».

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