我曾认为自己是一位不错的程序员,直到尝试在OS X上编写游戏手柄代码后,我感到十分无助。
有没有人知道我可以在我的(非免费)游戏中合法使用的代码?
在OS X上与游戏手柄交互真的这么难吗?我错过了什么重要的东西吗?
了解 HID Manager,尤其是 Leopard 中的新HID Manager API。虽然有点冗长,但其实质是可以在设备连接或断开时获取回调,并在这些设备产生事件时获取回调。
如果您使用 Cocoa,可以使用 Dave Dribin 的 DDHidLib,它提供了一个更好的 Objective-C API,可在 Tiger 上运行。
事实证明,答案是苹果的HID_Utilities,它(在某种程度上)简化了与HID Manager通信的工作。
当约翰·卡马克说苹果不关心游戏时,他真的说中了要害...
在OSX上获取游戏手柄事件的最快方法是使用SDL游戏库。您不必使用整个库,只需初始化操纵杆子系统,然后轮询或等待SDL_JOYAXISMOTION和SDL_JOYBUTTONUP / DOWN事件即可。 SDL具有LGPL许可证,因此您可以在非自由游戏中动态链接到它。
很容易!
虽然没有代码,但是使用InputSprocket机制与游戏手柄等设备进行通信非常简单。您遇到的确切问题是什么?