Прибытие: within
Юнит никогда не встанет ровно в точку. Спрашивать надо не «там ли он», а «близко ли»
ucontrol move 16 4 0 0 0ucontrol within 16 4 2 прибыл 0Пока поли летит, прибыл равен нулю; когда он подходит ближе двух клеток к цели —
единице. Обратите внимание на x: юнит встал около 15.87, а не на шестнадцати ровно.
| Поле | Что в нём |
|---|---|
| первое | within |
| второе и третье | точка в клетках |
| четвёртое | радиус, тоже в клетках |
| пятое | куда положить ответ: 1 или 0 |
within — вопрос, а не команда
Заголовок раздела «within — вопрос, а не команда»within ничего не делает с юнитом: он только отвечает. Управления он поэтому не берёт —
юнит, которым никто не командовал, от одного within под контроль не попадёт. Так же ведёт
себя unbind.
А вот уже начатое управление within продлевает: если юниту до этого скомандовали, каждый
вопрос обновляет десятисекундный срок наравне с командами.
ucontrol move 16 4 0 0 0ucontrol within 16 4 2 прибыл 0jump 0 equal прибыл 0Здесь move повторяется вместе с проверкой, и это правильный вид ожидания: команда
не даёт юниту сбиться с пути, а не только держит срок.
Какой радиус брать
Заголовок раздела «Какой радиус брать»| Радиус | Когда |
|---|---|
| 1–2 клетки | обычное «долетел» |
| 3–5 клеток | пересадка на следующую точку маршрута, где точность не нужна |
| дальность передачи | перед itemTake и itemDrop: туда юниту надо подойти вплотную |
Слишком маленький радиус — и юнит будет вечно «почти на месте»: инерция не даст ему остановиться в полуклетке от цели. Слишком большой — и программа решит, что он прибыл, когда до склада ещё лететь.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.