c++ - SDL2 - 未检测到操纵杆?

标签 c++ c sdl sdl-2 joystick

所以,我正在尝试学习如何在 SDL2 中使用操纵杆,并且我正在遵循 LazyFoo 的教程( Gamepads and Joysticks ),但我一定做错了什么,因为我的程序无法检测到我的 Controller !

Windows 检测到它(我使用的是 Windos 7 和无线 Xbox 360 Controller )并且 LazyFoo 的示例(我从上面的链接下载)也检测到我的 Controller !

我搜索并尝试了一些东西,但我尝试的似乎都不起作用......

这是我的初始化:

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

这部分位于我的输入类的构造函数内,该类应该“启动”操纵杆(并且还检测来自键盘的事件):

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

我还尝试在 Init 和 SDL_JoystickUpdate() 之后使用 SDL_JoystickEventState(SDL_ENABLE),但它也不起作用...

我忘记了什么?

如果你们愿意,我可以用我的输入类的代码编辑帖子...

编辑:我忘了说,即使我的 Controller 已连接并且一切正常,SDL_NumJoysticks() 返回 0...

最佳答案

我发现我做错了什么。事实证明,我试图在初始化 SDL 本身之前打开我的操纵杆(我在 Input 类的构造函数中打开我的操纵杆,但我正在创建我的 的唯一实例在SDL_INIT_EVERYTHING之前输入类。)

我认为仅凭我写的信息是不可能发现这一点的,所以很抱歉打扰。

关于c++ - SDL2 - 未检测到操纵杆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24318835/

相关文章:

c++ - 使用 throw_with_nested 并捕获嵌套异常

c++ - 与 Valgrind 一起运行时,malloc 返回 null

c - 在简单的客户端/服务器聊天程序中显示文本的困难(显示当前输入)-C

c - 取消引用指向不完整类型 C 的指针

android-ndk - 使用 NDK 工具链构建 SDL2

c++ - 使用更新功能扩展 QML Image 类型

c++ - 是否可以将枚举的默认类型设置为无符号字符?

python - 有没有一种好方法可以在不涉及太多拷贝的情况下将数据从 python 上下文发送到 C++

c - 通过 SDL 使用调色板

c++ - 程序收到信号 SIGSEGV,getter 方法中的段错误