在我尝试为 OS X 编写游戏手柄代码之前,我认为我是一个不错的程序员。现在我觉得自己很没用。
有谁知道我可以在我的(非免费)游戏中合法使用的任何代码?
在 OS X 上与游戏手柄对话真的有这么难吗?我错过了什么?
查看 HID 管理器,尤其是Leopard 中的新 HID 管理器 API。它有点冗长,但它的本质是您可以在连接和分离设备时获得回调,并在来自这些设备的事件入队时获得回调。
如果您正在使用 Cocoa,Dave Dribin有DDHidLib,它在 HID 管理器之上提供了更好的 Objective-C API,并且也可以在 Tiger 上运行。
原来答案是 Apple 的 HID_Utilities,它(在某种程度上)简化了与 HID Manager 交谈的工作。
当约翰卡马克说苹果不关心游戏时,他真的一针见血……
在 OSX 上获取游戏手柄事件的最快方法是使用游戏库 SDL。您不必使用整个库,只需初始化操纵杆子系统,然后轮询或等待 SDL_JOYAXISMOTION 和 SDL_JOYBUTTONUP/DOWN 事件。SDL 具有 LGPL 许可证,因此您可以在非免费游戏中动态链接到它。
简单的!
No code, but communicating with gamepads and the like is pretty straightforward with the InputSprocket mechanism. What was the precise problem you had?