Если или горизонтальное, или вертикальное значение равно 0, то скрипт изменяет направление движения к герою вдоль другого направления. Например, если горизонтальное значение равно -1, а вертикальное значение равно 0, то скрипт знает, что герой находится в той же строке слева и он делает перемещение противника налево.
Если и горизонтальное и вертикальное значения не равны нулю, то скрипт случайным образом выбирает одно из двух направлений и злодей двигается по нему. Например, если вертикальное значение равно -1, а горизонтальное значение равно 1, то AI знает, что герой где-то сверху-справа от противника. Тогда он случайно выбирает либо вертикальное, либо горизонтальное направление и передвигает противника к герою по этому направлению.
Скрипт коррекции содержит случайное условие (в виде оператора if). В случайные моменты времени скрипт выберет полностью случайное направление движения, вне зависимости от состояния игрового поля в этот момент. Эта особенность является «оглуплением» AI. Повторяемость этого случайного «изъяна» делает поведение AI непредсказуемым.
Таким образом, мы теперь знаем логику, которая реализуется при выполнении скрипта коррекции.
Но когда он выполняется? Ниже приведены условия, при которых скрипт может быть выполнен:
Когда противник сталкивается со стеной или любым неподвижным объектом.
Когда истекло maxtime кадров с момента последней коррекции. Значение maxtime отличается для каждого противника.
Недостатки и методы их преодоления
Прежде, чем мы взглянем на реальный код ActionScript для взывания этого AI к жизни, я хочу упомянуть недостатки этого AI. Вы можете заметить, что противники обычно держатся очень близко к стенам. С таким поведением, если у вас сравнительно пустой мир, противники имели бы тенденцию оставаться у внешнего края мира. Этот AI работает лучше всего с мирами, которые имеют много стен – пространства, которые сильно похожи на лабиринт. Если вам в основном нравится такой тип AI, но вы хотите сделать его более интеллектуальным, чем подразумевает тесное прижимание к стенам, вы можете сделать это без особых затруднений