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

Flush Message

Тот же буфер печати, но уходит он не в блок сообщений, а прямо на экран игрока

тик 0
Печать0
Показ сообщения1
типдлительностьoutSuccess
Операция2
=
Конец3
@counter0number
показовnullnull
print "Держите оборону!"
message announce 3 @wait

Текст собирается тем же print, что и для блока сообщений, а message отправляет его на экран игрока. Через три секунды объявление пропадает, и программа показывает его снова: счётчик показов растёт примерно раз в три секунды.

Поле Что в нём
первое вид сообщения
второе сколько секунд держать
третье куда положить ответ: получилось или нет
Вид Как выглядит
announce крупный текст посреди экрана
notify строка сверху, как о постройке ядра
toast всплывающая подсказка, короткая и мелкая
mission задача карты: висит в углу, пока её не сменят

mission стоит особняком: это не всплывающее сообщение, а текст задания. Он никуда не исчезает и никого не ждёт — просто заменяет прежний.

тик 0
Печать0
Показ сообщения1
типдлительностьoutSuccess
Печать2
Показ сообщения3
типдлительностьoutSuccess
Стоп4
@counter0number
первоеnullnull
второеnullnull

Два сообщения подряд: первое проходит (первое равно единице), второе — нет (второе равно нулю). Место занято, и программа об этом узнаёт.

Важное: при отказе буфер не чистится. Текст «И ещё одна» остаётся в буфере печати и уйдёт на экран со следующей удачной попыткой. Ничего не теряется.

В поле ответа по умолчанию стоит @wait — и это не просто имя переменной. Пока оно там, занятый экран задерживает программу на этой строке: счётчик откатывается назад, тик уступается, и на следующем тике попытка повторяется.

print "Держите оборону!"
message announce 3 @wait
op add показов показов 1

Именно так работает первый пример: print не успевает повториться, потому что программа стоит на строке с message, а не пробегает итерацию за итерацией.

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