SDL2 — джойстики не обнаружены?

Итак, я пытаюсь научиться использовать джойстики с SDL2 и следую учебному пособию LazyFoo (Геймпады и джойстики), но я, должно быть, делал что-то не так, потому что моя программа не обнаружит мой контроллер!

Windows обнаруживает это (я использую Windos 7 и беспроводной контроллер Xbox 360), и пример LazyFoo (который я скачал по ссылке выше) также обнаруживает мой контроллер!

Я искал и пробовал некоторые вещи, но ничего, что я пробовал, похоже, не работает …

Вот моя инициатива:

if (SDL_Init(SDL_INIT_EVERYTHING) < 0){
cout << "Error initializing SDL!" << endl;
return 1;
}

И эта часть находится внутри конструктора моего класса Input, который должен был «запустить» джойстик (а также обнаруживает событие от клавиатуры):

if (SDL_NumJoysticks() < 1){
cout << "No joystick detected." << endl;
}
else{
controller = SDL_JoystickOpen(0);
if (controller == NULL){
cout << "Error: Unable to open Joystick." << endl;
}
else{
isUsingJoystick = true;
}
}

Я также пытался использовать SDL_JoystickEventState(SDL_ENABLE) после инициации и SDL_JoystickUpdate(), но это тоже не сработало …

Что я забыл?

Если вы, ребята, хотите, я могу отредактировать пост с кодами моего класса ввода …

РЕДАКТИРОВАТЬ: я забыл сказать, что, хотя мой контроллер подключен и все, SDL_NumJoysticks() возвращает 0 …

2

Решение

здесь больше не нужна помощь, я поняла, что делаю неправильно. Оказывается, я пытался открыть свой джойстик перед инициализацией самого SDL (я открывал мой джойстик в конструкторе моего Input класс, но я создавал единственный экземпляр моего Input класс перед SDL_INIT_EVERYTHING… :П)

Извините за беспокойство, и я думаю, что было бы невозможно обнаружить это только с информацией, которую я написал … Так что, извините еще раз …

2

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


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