SDL 2.0 — SDL_GameControllerGetButton не работает

Я разрабатываю приложение, которое должно отображать, какие кнопки нажимаются на джойстике.

Для этого я использовал SDL, чтобы прочитать состояние моих джойстиков, код:

bool JoystickInfo::getButton (const int &joystick, SDL_GameControllerButton button)
{
SDL_JoystickUpdate();
gameController_ = SDL_GameControllerOpen (joystick);
return (bool) SDL_GameControllerGetButton (gameController_, button);
}

По какой-то причине эта функция всегда возвращает 0 (false). Я также пытался использовать события SDL (как показано Вот, но я также получил тот же результат.

Побочные примечания:

  • Приведенный выше код работал нормально с SDL 1.2, но мне нужен SDL 2.0 для GameController API.
  • Я прочитал значения осей моего джойстика аналогичным образом, и он работает без каких-либо проблем.
  • SDL_INIT() называется с SDL_INIT_EVERYTHING,

Код, который я использую для чтения значений оси:

double JoystickInfo::getAxis (const int &joystick, SDL_GameControllerAxis axis)
{
SDL_JoystickUpdate();
gameController_ = SDL_GameControllerOpen (joystick);
return (double) SDL_GameControllerGetAxis (gameController_, axis);
}

Есть что-то, чего мне не хватает?

0

Решение

Мне удалось решить мою проблему, загрузив сопоставления контроллера из файла (например, SDL_GameControllerDB).

Несколько полезных ссылок:

0

Другие решения


По вопросам рекламы [email protected]