C++ 按下SDL操纵杆按钮/C++;

C++ 按下SDL操纵杆按钮/C++;,c++,controller,sdl,xbox,C++,Controller,Sdl,Xbox,我如何识别控制器上的某个按钮是否被按下? 例如,Xbox 360控制器上的A按钮…您首先必须已初始化SDL的操纵杆支持(我在这里假设SDL2,但较低版本不应如此不同。)如下所示: 然后,您必须打开给定的操纵杆(通常,您列举所有操纵杆,让用户选择一个或为其选择一个),如下所示: 完成操作后,不要忘记“关闭”操纵杆(SDL\u JoystickClose(joy)) 无论如何,当你完成了所有这些(通常只有一次,并且在你的游戏循环之外),然后你检查你感兴趣的按钮,如下所示: if (SDL_Joyst

我如何识别控制器上的某个按钮是否被按下?
例如,Xbox 360控制器上的A按钮…

您首先必须已初始化SDL的操纵杆支持(我在这里假设SDL2,但较低版本不应如此不同。)如下所示:

然后,您必须打开给定的操纵杆(通常,您列举所有操纵杆,让用户选择一个或为其选择一个),如下所示:

完成操作后,不要忘记“关闭”操纵杆(
SDL\u JoystickClose(joy)

无论如何,当你完成了所有这些(通常只有一次,并且在你的游戏循环之外),然后你检查你感兴趣的按钮,如下所示:

if (SDL_JoystickGetButton(joy, button_number) != 0)
    // Button was pressed; yay!
要计算出按钮的数目,你可以做一些实验。IIRC,Xbox360控制器的按钮和轴几乎总是保持相同的数字


请注意,SDL还具有“游戏控制器”API,该API与上述API密切相关;只需在函数名中使用
GameController
而不是
操纵杆

这是搜索引擎的问题。找到有关控制器的文档并从那里开始。您好,请参考中心并更正您的问题。
SDL_Joystick * joy = SDL_JoystickOpen(0);  // Use 1, 2, etc. for the other joysticks,
                                           // You should use SDL_NumJoysticks() then.
if (SDL_JoystickGetButton(joy, button_number) != 0)
    // Button was pressed; yay!