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

Привязка по типу

Один ubind — один юнит. Следующий даст другого, и так по кругу, пока не кончатся

среднийНужно знать: Пустота: null, Свойства юнитов
ubind @poly

Одна строка, и в @unit оказывается поли — один из тех, что летают по карте. С этого начинается любая программа про юнитов: пока @unit пуст, командовать некому.

тик 0
Связь с юнитом0
тип
Информация1
=
у
Информация2
=
у
Информация3
=
у
Информация4
=
у
@counter0number
xnullnull
ynullnull
здоровьеnullnull
типnullnull

Привязанный юнит — обычный объект: sensor спрашивает у него координаты, здоровье и тип так же, как у здания.

тик 0
Связь с юнитом0
тип
Установить1
=
Связь с юнитом2
тип
Установить3
=
Связь с юнитом4
тип
Установить5
=
Связь с юнитом6
тип
Установить7
=
Стоп8
@counter0number
первыйnullnull
второйnullnull
третийnullnull
четвёртыйnullnull

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

ubind не «берёт какого-нибудь», он идёт по списку. У процессора есть счётчик — свой на каждый тип юнита, — и каждая привязка сдвигает его на одного.

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

ubind @poly
ucontrol move 20 30 0 0 0

Две строки без всякого цикла управляют всеми поли на карте сразу — просто по очереди.

тик 0
Связь с юнитом0
тип
Установить1
=
Информация2
=
у
Стоп3
@counter0number
пустоnullnull
здоровьеnullnull

Вспышек на карте нет, и ubind @flare кладёт в @unit пустоту. Ошибки при этом не будет: ни в игре, ни в примере программа не остановится.

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