SDL2 - 没有检测到操纵杆?

问题描述 投票:2回答:1

所以,我想学习如何使用操纵杆与SDL2,而我下面LazyFoo的教程(Gamepads and Joysticks),但我一定是在做一些错误的,因为我的程序将无法检测到我的控制器!

Windows检测到它(我使用的是Windows 7和无线的Xbox 360控制器)和LazyFoo例子(这是我从上面的链接下载)也检测我的控制器!

我搜索,尝试了一些东西,但没有什么,我试图似乎工作...

这里是我的初始化:

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

我也尝试使用SDL_JoystickEventState(SDL_ENABLE)初始化和SDL_JoystickUpdate()之后,但它did'nt要么工作...

什么我忘了?

如果你们愿意,我可以修改我的输入类的代码后...

编辑:我忘了说,即使我的控制器连接一切,SDL_NumJoysticks()返回0 ...

c++ c sdl sdl-2 joystick
1个回答
2
投票

我想通了,我在做什么错。事实证明,我是想初始化SDL本身之前打开我的操纵杆(我在我的Input类的构造函数打开我的操纵杆,但我创造了一个和Input之前我SDL_INIT_EVERYTHING类的唯一实例。)

我认为这是不可能只与我写的信息来发现这一点,困扰很抱歉。

© www.soinside.com 2019 - 2024. All rights reserved.