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(); // ジョイスティックの状態を更新、取得