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);
}

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


person Alex Spataru    schedule 26.04.2015    source источник
comment
Можете ли вы опубликовать, как вы успешно прочитали значения оси контроллера   -  person Zammalad    schedule 28.04.2015


Ответы (1)


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

Некоторые полезные ссылки:

person Alex Spataru    schedule 29.04.2015