Искусственный интеллект в старых играх… Это не способность компьютера на равных общаться с игроком, а скорее… создание имитации осмысленных действий персонажей или окружения. Давайте рассмотрим несколько примеров.
Патрулирование (перемещение по определённой траектории)
Нам нужно, чтобы персонаж (улитка, преподаватель или ученик) двигался по определённой траектории. Наши действия:
- Расставить точки патрулирования (NavigationPoint — PatrolPoint). Например, 4 штуки — по углам воображаемого прямоугольника.
- Указать каждой точке патрулирования на следующую точку патрулирования.
Свойства — PatrolPoint — NextPatrol = Имяследующейточки_патрулирования.
Имена всех объектов можно узнать здесь: Свойства — Object — Name
Например, у ваших точек патрулирования выставились такие имена: PatrolPoint11, PatrolPoint12, PatrolPoint13, PatrolPoint14.
Для PatrolPoint11 указываем следующей PatrolPoint12, для PatrolPoint12 — PatrolPoint13, для PatrolPoint14 — PatrolPoint11.
- Поставить персонажа как можно ближе к одной из точек патрулирования. Для примера, возьмём улитку (OrangeSnail).
- В свойствах улитки задаём:
patrol — bLoopPath = True (бесконечно двигаться по указанной траектории)
PatrolPoints — firstPatrolPointObjectName — имя_ближайшей патрульной точки, например: PatrolPoint11.
PatrolPoints — bGoToClosestPatrolPoint = True
Можно поэкспериментировать с типом патрулирования (patrol — ePatrolType). По умолчанию это PATROLTYPE_PATROL_POINTS (патрулирование по патрульным точкам). Но здесь нужно быть осторожнее, так как если параметры выставлены неправильно, то персонаж либо стоит на месте, либо застревает в углах и стенах.