Предыдущая Следующая
Дополнительно у джойстика имеются еще четыре кнопки, на рис. 9.1 они не попадают в наше поле зрения. На назначении этих кнопок мы остановимся подробнее в конце этого раздела. Как видите, кнопок и рычагов на джойстике хватает. Чтобы программисту было легче работать с имеющимися элементами управления, все кнопки и рычаги джойстика были рассортированы по категориям. Посмотрите на рис. 9.2, где показано устройство джойстика с точки зрения программиста.
Рис. 9.2. Устройство джойстика с точки зрения программиста
Названия на рис. 9.2, приведенные для кнопок и рычагов, - это на самом деле названия структур в XNA Framework, с помощью которых программист должен управлять работой джойстика. Как видно из этого рисунка, в XNA Faramework имеются следующие структуры:
□ GamePadButtons - большинство кнопок джойстика попадают в юрисдикцию этой структуры. С помощью этой структуры можно определять нажатие и отпускание одной из кнопок джойстика;
□ GamePadDPad - это та самая полукнопка-полурычажок;
□ GamePadTriggers - две кнопки (левая и правая), похожие на спусковой механизм оружия, которые, как правило, для этих и подобных целей и используются;
□ GamePadThumbSticks - это два рычажка (левый и правый) для управления движением главного героя и камерой.
Кнопки и рычаги джойстика 171
Очевидно, что для получения событий с джойстика нам необходимо его постоянно опрашивать, или следить за тем, что пользователь делает с элементами управления. Для этих целей в XNA используется следующая конструкция кода, которая должна прямо или косвенно вызываться в игровом цикле.
GamePadState currentState = GamePad.GetState(Playerlndex.One);
В этой строке кода создается объект currentState структуры GamePadState, который в каждый такт игры обновляет свое состояние с помощью метода GetState() класса GamePad. Таким образом, мы получаем возможность постоянно следить за всеми элементами управления джойстика непосредственно в игровом цикле или каждую долю секунды игры.
В методе GetState() используется параметр PlayerIndex.One. Этот параметр назначает, к какому именно из джойстиков принадлежит объект currentState или какой из джойстиков в данный момент мы контролируем. В Xbox 360 вы можете одновременно подключить до четырех джойстиков, то есть одновременно в игре могут участвовать сразу четыре игрока. Соответственно в коде нам необходим механизм прослушивания каждого из четырех джойстиков. Предыдущая Следующая
|