Не существует метода XNA, который бы сообщал, был ли «подернут» этот кадр.
Самый простой способ - сохранить старое состояние большого пальца.Если состояние было нулевым, а теперь ненулевым, оно дергалось.
Добавление:
Вместо проверки, было ли состояние нулевым и теперь ненулевым.Вы можете использовать кнопки джойстика из перечисления, которое вы упоминаете в своем вопросе, чтобы определить, была ли ручка «подергана».В этом случае вы рассматриваете палку как DPad и должны проверить каждое направление независимо.Следующий код показывает этот метод:
private void ProcessUserInput()
{
GamePadState gamePadState = GamePad.GetState(PlayerIndex.One);
if (m_lastGamePadState.IsButtonUp(Buttons.LeftThumbstickUp) && gamePadState.IsButtonDown(Buttons.LeftThumbstickUp))
{
PrevMenuItem();
}
if (m_lastGamePadState.IsButtonUp(Buttons.LeftThumbstickDown) && gamePadState.IsButtonDown(Buttons.LeftThumbstickDown))
{
NextMenuItem();
}
m_lastGamePadState = gamePadState;
}