netlib.narod.ru< Назад | Оглавление | Далее >

Упражнение: пишем класс свободной камеры

Вы уже узнали все необходимое для работы с устройствами ввода. Нестандартные устройства ввода, такие как руль для Xbox 360, автоматически поддерживаются классом Input как игровой пульт. Если пожелаете, можете играть в Rocket Commander XNA, управляя рулем для Xbox 360. Это неестественно, но работает и выглядит забавно.

У вас также есть несколько классов игровых экранов, и вы можете попробовать повторно использовать их для следующих игр. Например, игра XNA Shooter использует почти ту же самую структуру меню, что и Rocket Commander XNA, только более простую. В следующей главе вы больше узнаете об игре XNA Shooter.

Вашей задачей в этой главе будет написание собственного класса свободной камеры. Вы должны реализовать свободную камеру в трехмерном пространстве, позволяющую перемещаться в любом направлении. Просто поменяйте класс SimpleCamera в BaseGame и замените его на ваш класс камеры; тогда вы сможете использовать все тестовые модули, отображающие трехмерные объекты, для проверки вашей камеры. Если вы не уверены с чего начать, посмотрите существующий код в классе SpaceCamera, который предоставляет большую часть функциональности для поддержки камеры такого типа.

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


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz