Читаем Создание игр для мобильных телефонов полностью

Этот код показывает, как создать очень простое движение по вертикальному зигзагу. Массив целых чисел zigZag содержит пары приращений координат XY, используемых для задания движения. Переменная patternStep – это целочисленная величина, определяющая текущий этап в движении. Когда объект движется по зигзагу, за один игровой цикл он перемещается на 2 пикселя вверх, смещаясь при этом на 3 пикселя влево или вправо.

Поведенческий ИИ

Несмотря на то что каждый из типов блуждающего ИИ очень полезен для решения определенных задач, на практике часто применяется их комбинация. Поведенческий ИИ – это другой основной тип игрового ИИ, который комбинирует алгоритмы блуждающего ИИ, чтобы задать поведение объектов. Вернемся к примеру с пришельцем; что, если вы захотите, чтобы иногда пришелец преследовал игрока, иногда уклонялся от него, иногда двигался заданным образом, а иной раз двигался хаотично? Другой хороший довод в пользу применения поведенческого ИИ – это возможность повышения сложности при переходе на более высокие уровни. Например, вы можете применять алгоритм преследования в большей степени, чем другие алгоритмы.

Чтобы реализовать поведенческий ИИ, необходимо установить ряд правил поведения. Задать поведение игровых объектов не так уж и сложно. Обычно требуется разграничить модели поведения для всех объектов системы, а затем применить ту или иную модель к каждому из объектов. Например, в системе пришельцев можно выделить следующие модели поведения: преследование, уклонение, движение по заданной траектории, случайное перемещение.

Для каждого типа поведения пришельца вы зададите определенный процент использования того или иного поведения, отделяя их таким образом друг от друга. Например, для агрессивного пришельца модель поведения можно задать так: преследование – 50 %, уклонение – 10 %, полет по траектории – 30 % и случайные перемещения – 10 %. С другой стороны, для более пассивного пришельца подошла бы такая модель: преследование – 10 %, уклонение – 50 %, полет по заданной траектории – 20 %, случайное перемещение – 20 %.

Такой подход хорошо работает и приводит к удивительным результатам, несмотря на простоту реализации. Обычно для реализации используется конструкция switch или вложенная конструкция if-else, например:

int behavior = Math.abs(rand.nextInt()) % 100;

if (behavior < 50)

// преследование

else if (behavior < 60)

// уклонение

else if (behavior < 90)

//полет по траектории

else

//случайное перемещение

Перейти на страницу:

Похожие книги

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT