padなどのディバイスNOの取得方法を知りたいのですが・・・
使うにしてもまずこれ知らないと・・
DirectXを使用すればよろしいかと。
QuadrupleDというコンポーネントが有名です。
基本的にはDirectXを使わなくてもよいのですが
コードが定型化しているのでDirectXが無難です。
QuadrupleDを使うと依存度が高くなってしまうのでやめたほうがよいでしょう。
現在のカレントバージョンはDirectX9ですが
DirectX6か7のインターフェースを使うとよいと思います。
私は構造体をDirectX7に直して宣言した
DirectInput(=DirectX6)インターフェースを使っています。
違いは使えるボタンの数
はっきりいって特定のゲームがどうしてもしたい人以外
DirectX8以降をわざわざダウンロードしてインストールするというリスクは
避けると思うので
現段階でXPよりWin2kの評判が良い以上
DirectX7あたりをボーダーと考えるのがよいと思っています。
昔はJediGraphicsにサンプルが多数あったのですが今はないようですが
DirectInput delphi sampleあたりでサーチすればソースは見つかると思います。
デバイスナンバーを得るにはコールバックルーチンを割り当てて取得するのですが
むやみに汎用性を持たせるよりも
1ジョイステッィク用と2,4、不特定多数と分けた方が良いように思います。
デバイスナンバーというよりもコールバックの際に
順番にポインタが帰ってくる感じです。
DirectX8以降はこの辺が簡素化されているとか
DirectXを使わない場合4ボタン以上が多分使えないと思ったのだけど
試してないので自信無し。
昔はWindowsNT用としてmmsystemをusesにいれて組んだように思います。
確かMM_JOY1BUTTONDOWNとかいうようなメッセージを使ったと思うので
興味があるならば
delphi Joystick MM_JOY1BUTTONDOWN
あたりでサーチをかけるとジョイスティックのDirectXを使わない使用方法の
ソースが手に入ると思います。
USBジョイスティックに対応しているかも未確認
ツイート | ![]() |