Пауза в секундах
Подождать столько-то секунд — и не потратить на ожидание ни одной инструкции
У wait одно поле — сколько секунд ждать. Дробные числа можно: wait 0.1 это шесть тиков,
wait 2.5 — полторы сотни.
Нажмите «пуск» и посмотрите на итераций: единица в секунду, а не сотня. Программа делает
своё дело раз в секунду и всё остальное время молчит.
Ожидание не тратит инструкции
Заголовок раздела «Ожидание не тратит инструкции»Внутри wait устроен просто: пока время не вышло, он возвращает счётчик на себя и отдаёт
остаток тика. На следующем тике процессор снова упирается в ту же строку, проверяет время
и снова отдаёт тик.
Это важно: пока программа ждёт, она не выполняет ничего. Запас @ipt не тратится, и место
в тике достаётся другим вашим строкам — точнее, достанется, когда ожидание кончится.
Сколько итераций выходит
Заголовок раздела «Сколько итераций выходит»Одна и та же программа из одной полезной строки на гиперпроцессоре, 60 тиков:
| Хвост | Итераций за секунду |
|---|---|
| ничего | 1475 |
wait 0 |
59 |
wait 0.5 |
2 |
wait 1 |
1 |
Разница между первой строкой и второй — это и есть цена ожидания: программа перестаёт крутиться вхолостую. Разницу между второй и третьей задаёте вы сами, и об этом следующий урок.
Время игры, а не ваше
Заголовок раздела «Время игры, а не ваше»wait отмеряет паузу по тикам игры, а тик — это 1/60 секунды при нормальной скорости.
Когда игра ускорена или тормозит, тики идут иначе, и wait 1 окажется не ровно секундой
по часам на стене. Для логики это обычно и правильно: программа живёт во времени игры.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.