Я разрабатываю приложение, которое должно отображать, какие кнопки нажаты на джойстике.
Для этого я использовал 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);
}
Есть ли что-то, чего мне не хватает?