Итак, я пытаюсь научиться использовать джойстики с 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 …
здесь больше не нужна помощь, я поняла, что делаю неправильно. Оказывается, я пытался открыть свой джойстик перед инициализацией самого SDL (я открывал мой джойстик в конструкторе моего Input
класс, но я создавал единственный экземпляр моего Input
класс перед SDL_INIT_EVERYTHING
… :П)
Извините за беспокойство, и я думаю, что было бы невозможно обнаружить это только с информацией, которую я написал … Так что, извините еще раз …