Mac OSXでの入力にPS3コントローラーを使用する


16

OSXのPS3コントローラーに接続するUSBドライバーを見つけることができました。ここ報告されているように、Bluetooth経由でコントローラーに接続できます。

Snes9xを介して入力が適切に機能していることを確認しました。

とにかく、それは私の実際の質問の背景にすぎません。MacでC ++経由でPS3 HIDにアクセスする方法はありますか?XCodeを使用したMacでのC ++開発は比較的初心者であり、使用する可能性のあるライブラリの検索でインターネットは失望しています。

コードでコントローラーのボタン/軸の状態にアクセスする方法についてアイデアを持っている人はいますか?それらを入力マップに転送できますか?


2
それはまともな質問なので、閉じることも削除することも本当に適切ではありません。回答を投稿して、しばらくしてから受け入れることができるはずです。それには評判の門があることに驚いています。そうでない場合は、私が思うにもう少し評判があるときにこの質問に戻ってくることを計画してください。

回答:


4

だから、1時間かそこらでさまざまなライブラリをいじって試してみると、OIS(およびSDL)はコントローラをジョイスティックとして認識し、必要なものをすべて提供してくれるようです。

上記のリンクからOISをインストールし、「ConsoleTest」プロジェクトを作成/実行すると、デバッグウィンドウでコントローラーからの出力を確認できます。


さらに、SDLによって生成された軸/ボタン番号に一致する私が使用している列挙型を次に示します(OISではなく、使用しないことに決めたため、番号付けは同じになる可能性があります)。トリガーボタンは軸として分類されていないことに注意してください。これは、メモリから0〜255であるべきだと確信しています。

//Values SDL attributes to individual PS3 axes
enum EPS3RawAxesIndex
{
    EPS3RawAxesIndex_LeftX = 0,
    EPS3RawAxesIndex_LeftY = 1,
    EPS3RawAxesIndex_RightX = 2,
    EPS3RawAxesIndex_RightY = 3
};

//Values SDL attributes to individual PS3 controller buttons
enum EPS3RawButtonIndex
{
    EPS3RawButtonIndex_Select           = 0,

    EPS3RawButtonIndex_JoyClickLeft     = 1,
    EPS3RawButtonIndex_JoyClickRight    = 2,

    EPS3RawButtonIndex_Start            = 3,

    EPS3RawButtonIndex_DpadUp           = 4,
    EPS3RawButtonIndex_DpadRight        = 5,
    EPS3RawButtonIndex_DpadDown         = 6,
    EPS3RawButtonIndex_DpadLeft         = 7,

    EPS3RawButtonIndex_TriggerLeft      = 8,
    EPS3RawButtonIndex_TriggerRight     = 9,

    EPS3RawButtonIndex_ShoulderLeft     = 10,
    EPS3RawButtonIndex_ShoulderRight    = 11,

    EPS3RawButtonIndex_Triangle         = 12,
    EPS3RawButtonIndex_Circle           = 13,
    EPS3RawButtonIndex_Cross            = 14,
    EPS3RawButtonIndex_Square           = 15,

    EPS3RawButtonIndex_PSButton         = 16
};
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.