XInput
2006/07/21 金 09:34
六本木
ゴールデンウィークに買ったまま触る機会のなかった
XBOX360 のUSBコントローラ。
WindowsXp に接続することでゲームコントローラーとして使えるんだけども、
この360コントローラー専用のAPIが DirectX9.0 SDK October 2005 より追加された。
それが XInput 。
いままで、DirectX でコントローラーを使おうと思ったら、DirectInput を使って、
- DirectInputの初期化
- コントローラの一覧を列挙
- 列挙中にボタンの数などを確認
- 使うコントローラーのデバイスIDを記憶
- ゲームで読み取るたびに、数個の関数を使用
- コントローラーが外されたりすると、その都度そのコントローラの初期化からやり直し
と、なにかと面倒だった。
んが、この XInput って、初期化は1行。
取得も1行。
つまり2行でデータが全て読み取れる上に、丁寧に認識した順番にIDが0から振られて(現在は最大ID3の4個)、コントローラのLEDもしっかり連動してるし。
あぁ、、、なんか全部360コントローラでいいかなぁ。。とか思ってしまうほど簡単に使えるのがワロスみたいな。
ゲームに関係のないアプリでも対応してしまえるね、これは。。
image[360PAD]
画像は、Windowsで認識したパッドと、360で認識中のパッド。
共にプレイヤー1を示すLED(左上)が光っているのに注目。
(360が2台あるとかいうネタじゃないですw)
また、DirectInput として使用する場合は、LEDは光らない。
あと、XInput を使用しないでいままでの DirectInput で取得すると、デドアラスティックの時に書いたように、アナログL/Rボタンがはやっぱり同時押し認識は出来なかった。
[9] >>
comments (0)
trackbacks (0)
<< 環境構築中2
フィリピン:1 >>
[0] [top]