SDL_Joystick
和SDL_GameController
之间的关系是什么?目前我所知道的只有这些:
SDL_GameController
及其相关功能都是在SDL2中引入的新API的一部分。SDL_GameController
及其相关功能是建立在现有的SDL_Joystick
API之上的。- (工作草案)您可以通过调用函数
SDL_GameControllerGetJoystick()
并传递SDL_GameController
的实例来获得SDL_Joystick
的实例。 - (工作草案)您可以先调用
SDL_JoystickInstanceID()
并传递SDL_Joystick
的实例来获取SDL_GameController
的实例,然后将SDL_JoystickID
传递给SDL_GameControllerFromInstanceID
。
尽管SDL_Joystick
和SDL_GameController
是可以互换使用的,但似乎SDL_GameController
将取代并逐渐代替SDL_Joystick
。
原因是,当轮询SDL_Event
时,SDL_Event
实例同时包含SDL_Event::jbutton
和SDL_Event::cbutton
结构,分别表示SDL_Joystick
按钮和SDL_GameController
按钮。我猜我可以使用任何一个或两个按钮事件来控制玩家。
我可能是错的。
我想问:
那对于SDL_GameController
来说也是一样吗?
使用SDL_Joystick
和SDL_GameController
分别有什么优缺点(互相之间的)?
SDL_Joystick
是SDL_GameController
的父类? - tom_mai78101