SDL 2.0 - SDL_GameControllerGetButton不起作用
SDL 2.0 - SDL_GameControllerGetButton not working
我正在开发一个应用程序,需要显示操纵杆上按下了哪些按钮。
为此,我使用 SDL 读取操纵杆的状态,代码为:
bool JoystickInfo::getButton (const int &joystick, SDL_GameControllerButton button)
{
SDL_JoystickUpdate();
gameController_ = SDL_GameControllerOpen (joystick);
return (bool) SDL_GameControllerGetButton (gameController_, button);
}
出于某种原因,此函数始终返回 0(假)。我也尝试使用 SDL 事件(如此处所示,但我也得到了相同的结果。
旁注:
- 上面的代码在 SDL 1.2 中运行良好,但我需要 SDL 2.0 作为
GameController
API。 - 我以类似的方式读取操纵杆轴的值,并且没有任何问题。
-
SDL_INIT()
与SDL_INIT_EVERYTHING
一起调用。
我用于读取轴值的代码是:
double JoystickInfo::getAxis (const int &joystick, SDL_GameControllerAxis axis)
{
SDL_JoystickUpdate();
gameController_ = SDL_GameControllerOpen (joystick);
return (double) SDL_GameControllerGetAxis (gameController_, axis);
}
我缺少什么吗?
我设法通过从文件(例如SDL_GameControllerDB)加载控制器映射来解决我的问题。
一些有用的链接:
- https://github.com/gabomdq/SDL_GameControllerDB
- http://wiki.libsdl.org/SDL_GameControllerAddMappingsFromFile
- http://wiki.libsdl.org/SDL_GameControllerAddMapping
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- Mix_Init和Mix_OpenAudio SDL之间的区别是什么
- SDL 窗口不会弹出
- SDL 操纵杆按钮按下/C++
- VSCode IntelliSense无法识别SDL框架的SDL_image扩展库
- C++/SDL "initial value of reference to a non-const must be an lvalue"
- SDL 映像:无法打开映像,仅显示错误消息
- 如何在 3D OpenGL 场景上绘制 SDL 2D 矩形?
- "Undefined symbols for architecture x86_64" 在 SDL 2 (macOS) 中
- 为什么 SDL 在 Mac 上比 Linux 慢得多?
- 在 OSX 上打开 SDL 窗口时不要打开终端窗口
- SDL + OpenGL ES 2.0 使用着色器显示纹理
- SDL GPU 为什么将两个图像分成两个单独的循环更快?
- 在 cmake 中找不到 SDL 库
- SDL/C++: 如何平滑但随机地移动矩形?
- 如何与 SDL 库链接?
- 为什么我的C++代码不呈现 SDL 矩形?
- 为什么要在初始化SDL之前在SDL中声明指针
- C++/SDL 如何覆盖数组?
- 在 SDL 中水平减小静态图像进度条