gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:43:55 26 4
gpt4 key购买 nike

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

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

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

这是我的初始化:

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

我也尝试在 Init 和 SDL_JoystickUpdate() 之后使用 SDL_JoystickEventState(SDL_ENABLE),但它也没有用......

我忘记了什么?

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

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

最佳答案

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

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

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com