C#.netでアナログジョイスティックを使った。
ジョイスティックはDirectXで扱う事ができるのだが、.netからはアーキテクチャ的に直接触る事は出来ず、ManagedDirectXを使う。
■環境構築
Get Ready for Managed DirectX MDXのインストールと設定
smdn: Managed DirectX 第一回 DirectDrawその1 DirectXへの参照の追加、DirectDrawの使用
DirectX SDK 9.0の最新版をインストールする。
■DirectInput
msdn japan: DirectInput 日本語。C++とVBしか載ってない。
msdn: Capturing from Microsoft® DirectInput® Devices 英語。C#で書かれている。
■Joystickを扱う手順
+using DirectX.DirectInput
+列挙 – 接続されているデバイス一覧の列挙(問い合わせ)
+ジョイスティックがあるか確認
+(アナログスティックの値を絶対値/相対値選択)
+(アナログスティックの値の範囲を指定
+どのFormをコントロールするか指定
+アクセス権取得
+状態取得 JoystickState state = joystick.currentJoystickState;
クラス化した。→ManagedDX.cs
使うにはFormから呼び出す。コンストラクタに new ManagedDX(this)してForm自身を渡す。
ManagedDX mdx = new ManagedDX(this);
mdx.JoyStickInit() // ジョイスティック設定
Microsoft.DirectX.DirectInput.JoystickState = mdx.UpdateJoyStick(); // ジョイスティックの状態を更新、取得