Программирование игр для Windows. Советы профессионала


Вероятностные автоматы - часть 2


Для моделирования этого процесса мы могли бы сослаться на «таблицу вероятностей» в той части программы, которая выбирает новое состояние. Эта таблица могла бы содержать различные степени вероятности переходов существ в то или иное состояние. К примеру, взгляните на таблицу 13.1, в которой перечислены соотношения вероятностей для трех различных существ в одной игре.

Таблица 13.1. Распределение вероятностей для трех существ в игре.

Состояние      Существо 1: Аннигилятор

(А)Атака 50% (П)Преследование  5% (С)Случайное  10% (Р)Роение    20% (Ш)Шаблон 15%

Состояние      Существо 2: Умник

(А)Атака 20% (П)Преследование  30% (С)Случайное     20% (Р)Роение         20% (Ш)Шаблон   10%

Состояние      Существо 3: Хныкалка

(А) Атака  5% (П)Преследование  60% (С)Случайное      20%    (Р)Роение   10% (Ш)Шаблон       5%

Как вы можете судить по распределению вероятностей, Аннигилятор преимущественно атакует, Хныкалка предпочитает преследование, а Умник -что-то среднее между ними. Прежде чем перейти к разговору о реализации вероятностей, я хочу поговорить еще об одном принципе поведения игровых объектов — о роении. Роение означает, что создания в игре сбиваются в кучи и пытаются как-то сгруппироваться. Это похоже на то, как настоящие солдаты или насекомые иногда стремятся собраться вместе и остаться рядом друг с другом.

В действительности, это не что иное, как выбор общей точки встречи и целеустремленное движение к ней. Мы можем использовать такой тип поведения как совершенно новое состояние, при котором создания кажутся группирующимися.

Моделирование этого состояния не очень сложно:

§

Выбрать существа, которые вы хотите сгруппировать вместе;

§          Выбрать среднюю относительно всех созданий позицию. Эта точка в пространстве является центром и может быть использована для вычисления траекторий движения всех объектов, которые следуют к ней;

§          Вычислить траекторию так, чтобы каждое создание следовало к центру.




Начало  Назад  Вперед



Книжный магазин