【发布时间】:2014-11-20 22:17:42
【问题描述】:
来源很基础:
#include <SDL.h>
int main(int argc, char *argv[])
{
if (SDL_Init(SDL_INIT_JOYSTICK))
{
return 1;
}
int num_joy, i;
num_joy=SDL_NumJoysticks();
printf("%d joysticks found\n", num_joy);
for(i=0;i<num_joy;i++)
printf("%s\n", SDL_JoystickName(i));
SDL_Quit();
return 0;
}
这会输出 Ubuntu 12.04 上连接的操纵杆的名称,但不会在我的 Mavericks Mac 上输出,它是从 Homebrew 安装的 SDL 1.2.15。以root身份运行它没有区别。我现在假设这只是 SDL 中的一个错误,但我很乐意被证明我在这里做错了。
【问题讨论】:
-
您可能必须在 Mac 上手动安装驱动程序。例如,我寻找 Xbox360 控制器的 Mac 驱动程序,但只能找到安装第三方软件的说明。
-
360控制器的特殊之处在于需要自己的驱动程序。我说的是标准 HID 操纵杆,几乎可以肯定它应该开箱即用。
-
某些操作系统将输入链接到窗口。您可能必须创建一个窗口才能接收来自游戏手柄的输入事件。
-
SDL_Init 实际上确实短暂地创建了一个窗口的闪光——在这里似乎没有帮助。
标签: macos sdl osx-mavericks joystick