2008-09-18 5 views
9

Ich dachte, ich wäre ein anständiger Programmierer, bis ich versuchte, Gamepad-Code für OS X zu schreiben. Jetzt fühle ich mich zutiefst nutzlos.Gamepad Code auf OS X: Buh?

Kennt jemand irgendeinen Code, den ich legal in meinem (nicht-freien) Spiel verwenden kann?

Ist es wirklich schwierig, mit einem Gamepad unter OS X zu sprechen? Was vermisse ich?

Antwort

-1

Kein Code, aber Kommunikation mit Gamepads und dergleichen ist ziemlich einfach mit dem Mechanismus InputSprocket. Was war das genaue Problem, das du hattest?

+0

Spiel Ritzel scheint nicht unter OS X unterstützt werden. Die empfohlenen APIs sind hier, obwohl ich die Leopard-only nicht verwenden kann: http://developer.apple.com/referencelibrary/Games/idxHumanInterfaceDeviceForceFeedback -date.html –

3

Überprüfen Sie den HID-Manager, vor allem die neue HID Manager APIs in Leopard. Es ist etwas ausführlich, aber die Essenz davon ist, dass Sie Rückrufe erhalten können, wenn Geräte angeschlossen und getrennt werden, und Rückrufe erhalten, wenn Ereignisse von diesen Geräten in die Warteschlange eingereiht werden.

Wenn Sie mit Cocoa arbeiten, hat Dave DribinDDHidLib, die eine bessere Objective-C-API auf dem HID-Manager bietet und auch auf Tiger läuft.

+0

Der HID Manager ist, womit ich mich geprügelt habe (obwohl ich nicht die Leopard-spezifischen Sachen verwende). Alles was ich sagen kann ist, dass, wenn jemand jemals seine Grenzen als Coder entdecken will, der Versuch, Gamepad-Daten aus dem HID Manager zu holen, ein guter Platz dafür ist. –

+0

Wenn Sie die Option haben, verwenden Sie am besten die neue Leopard-spezifische API. Die alte API ist sehr skizzenhaft und ich bezweifle, dass sie in Snow Leopard unterstützt wird. Ich habe vor einiger Zeit eine größere Sicherheitslücke (CVE-2007-0724) gefunden und Apple brauchte 11,5 Monate, um einen Patch zu erstellen. – splicer

2

Stellt sich heraus, die Antwort war Apples HID_Utilities, die (etwas) den Job erleichtert, mit HID Manager zu sprechen.

John Carmack wirklich genau den Nagel auf den Kopf, als er sagte, dass Apple nicht über Spiele egal ...

2

Der schnellste Weg Gamepad Ereignisse auf OSX zu bekommen, ist SDL zu verwenden, um das Spiel Bibliothek. Sie müssen nicht die gesamte Bibliothek verwenden, Sie können nur das Joystick-Subsystem initalisieren und dann nach SDL_JOYAXISMOTION- und SDL_JOYBUTTONUP/DOWN-Ereignissen abfragen oder warten. SDL hat eine LGPL-Lizenz, sodass Sie in Ihrem nicht-freien Spiel dynamisch darauf verlinken können.

Einfach!

+0

Ich habe den SDL-Code ursprünglich angeschaut und widerwillig entschieden, dass ich nicht einmal den LGPL-Code verwenden kann. Aber wie sich herausstellt, ist der SDL-Joystick-Code eine Hommage an Apples HID_Utilities-Code, den ich am Ende benutzt habe. –