我尝试在SDL-2.0代码中使用SDL_JoystickOpened()
,但我收到错误消息 SDL_JoystickOpened
未在此范围内声明。
我搜索过并发现SDL-2.0中不再存在SDL_JoystickOpened()
,但我没有找到替换它的函数。任何人都可以告诉我如何在这段代码中替换SDL_JoystickOpened()
:
SDL_Joystick *joy = SDL_JoystickOpen(0);
if (SDL_JoystickOpened(0) == 1)
{
// do something
}
感谢。
答案 0 :(得分:5)
documentation表示SDL_JoystickOpen()
调用如果失败则返回NULL指针,所以只需检查一下:
SDL_Joystick *joy = SDL_JoystickOpen(0);
if (joy) {
// joy is a valid pointer so do stuff
}
答案 1 :(得分:1)
2.0中的替代方案可能是SDL_JoystickGetAttached
SDL_JoystickOpened(int index)
(旧方式SDL 1.2)
确定是否已在应用程序中打开操纵杆。 index是指系统上的第N个操纵杆。 p>
SDL_JoystickGetAttached(SDL_Joystick* joystick)
(新方式SDL 2.0)
如果操纵杆已打开则返回SDL_TRUE,如果没有则返回SDL_FALSE;致电SDL_GetError()了解更多信息
SDL2 source-code test/testjoystick.c
中还有一个例子(至少在SDL2-2.0.1中)。
另请注意 SDL 1.2到2.0迁移指南的Joysticks部分。它提供了有关2.0中新功能和方法的各种信息。它还链接到GameController部分,例如SDL_GameControllerGetJoystick