Движение и остановка
Координаты в тайлах, команда живёт десять секунд, а «стоять» не значит «замереть»
ubind @polyucontrol move 16 4 0 0 0Две строки — и поли летит на клетку 16 4. Смотрите за x: он растёт, пока юнит в пути,
и замирает около шестнадцати, когда тот долетел.
| Поле | Что в нём |
|---|---|
| первое | move |
| второе и третье | координаты цели в клетках |
| остальные | у move не используются, пишут нули |
Координаты те же, что у @x и @y: это клетки карты, а не мировые единицы. Поэтому
«лететь к складу» — это sensor x container1 @x, sensor y container1 @y и те же числа
в move.
Команду повторяют, а не отдают
Заголовок раздела «Команду повторяют, а не отдают»Управление юнитом живёт десять секунд — 600 тиков. Каждая новая команда отсчитывает их заново, а когда время кончится, юнит вернётся к своему обычному поведению: поли улетит чинить постройки, кинжал пойдёт к ближайшему врагу.
Движение при этом просто прекращается — вести юнита больше некому. А вот работа, которую ему успели задать, остаётся: добыча, стройка и флаг переживают таймер и снимаются только новой командой.
Поэтому программа про юнитов почти всегда выглядит так: привязались, скомандовали, закончили итерацию — и снова с начала. Ничего лишнего в этом нет, повторная команда не сбивает юнита с пути.
stop — не тормоз
Заголовок раздела «stop — не тормоз»Здесь программа ведёт поли к 16 4, но как только x переваливает за десять, отдаёт
ucontrol stop. Юнит после этого пролетает ещё несколько клеток по инерции — и x
останавливается около семнадцати, дальше цели.
stop означает «больше никуда не веду», а не «стой на месте». Скорость гасит трение,
и летающий юнит проезжает изрядно.
Другие способы двигаться
Заголовок раздела «Другие способы двигаться»| Команда | Что делает |
|---|---|
move |
прямо в точку, не разбирая дороги |
approach |
к точке, но остановиться на заданном радиусе |
pathfind |
в точку по дороге — наземный обойдёт стену |
autoPathfind |
туда, куда юнит пошёл бы сам: к вражескому ядру |
boost |
поднять наземного юнита в воздух, если он это умеет |
idle |
ничего не делать, но остаться под управлением |
approach пригождается, когда подлетать вплотную не надо: к турели, чтобы её починить,
или к врагу на дальность выстрела. Радиус у неё в третьем поле и тоже в клетках.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.