среда, 11 февраля 2015 г.

SpyQuest. 04 Желание развлечься

В одном из прошлых постов я отметил, что в игре SpyQuest каждые 5 минут у неигрового персонажа (NPC) возникает желание развлечься. Рассмотрим подробнее, как я реализовал выполнение этого желания.


Каждый NPC в игре SpyQuest знает расположения всех достопримечательностей на игровой карте, которые могут утолить его желание. Область утоления желания развлечься задаётся двумя окружностями, с одним центром (равным центру достопримечательности), но с разными радиусами.

При возникновении желания развлечься персонаж выбирает случайную достопримечательность, определяет случайную точку на области пересечения двух её определяющих окружностей, и начинает движение (Action.GoingToPerformWish). Достигнув точки назначения, персонаж разворачивается в сторону достопримечательности и приступает к выполнению своего желания (Action.PerformingWish). Выбор случайной точки равномерно распределяет персонажей вокруг достопримечательности, да и выглядит «натуральнее».

Следует отметить, чтоб в любой момент времени описанный план действий может быть прерван внезапным разговором другого персонажа или игрока. По окончании разговора персонаж вспомнит о своем желании и продолжит его выполнение.

Закончив развлекаться, персонаж останавливается на некоторое время, после которого снова спрашивает себя: «Чем бы заняться?».

Комментариев нет:

Отправить комментарий