В одном из прошлых постов я отметил, что в игре SpyQuest каждые 5 минут у неигрового персонажа (NPC) возникает желание развлечься. Рассмотрим подробнее, как я реализовал выполнение этого желания.
Каждый NPC в игре SpyQuest знает расположения всех достопримечательностей на игровой карте, которые могут утолить его желание. Область утоления желания развлечься задаётся двумя окружностями, с одним центром (равным центру достопримечательности), но с разными радиусами.
При возникновении желания развлечься персонаж выбирает случайную достопримечательность, определяет случайную точку на области пересечения двух её определяющих окружностей, и начинает движение (Action.GoingToPerformWish). Достигнув точки назначения, персонаж разворачивается в сторону достопримечательности и приступает к выполнению своего желания (Action.PerformingWish). Выбор случайной точки равномерно распределяет персонажей вокруг достопримечательности, да и выглядит «натуральнее».
Следует отметить, чтоб в любой момент времени описанный план действий может быть прерван внезапным разговором другого персонажа или игрока. По окончании разговора персонаж вспомнит о своем желании и продолжит его выполнение.
Закончив развлекаться, персонаж останавливается на некоторое время, после которого снова спрашивает себя: «Чем бы заняться?».
Каждый NPC в игре SpyQuest знает расположения всех достопримечательностей на игровой карте, которые могут утолить его желание. Область утоления желания развлечься задаётся двумя окружностями, с одним центром (равным центру достопримечательности), но с разными радиусами.
При возникновении желания развлечься персонаж выбирает случайную достопримечательность, определяет случайную точку на области пересечения двух её определяющих окружностей, и начинает движение (Action.GoingToPerformWish). Достигнув точки назначения, персонаж разворачивается в сторону достопримечательности и приступает к выполнению своего желания (Action.PerformingWish). Выбор случайной точки равномерно распределяет персонажей вокруг достопримечательности, да и выглядит «натуральнее».
Следует отметить, чтоб в любой момент времени описанный план действий может быть прерван внезапным разговором другого персонажа или игрока. По окончании разговора персонаж вспомнит о своем желании и продолжит его выполнение.
Закончив развлекаться, персонаж останавливается на некоторое время, после которого снова спрашивает себя: «Чем бы заняться?».
Комментариев нет:
Отправить комментарий