Microsoft DirectX 8.0 (Visual Basic)

ステップ 2 : デバイスのプロパティの設定

適切なフォース フィードバック デバイスが見つかった場合、能力をチェックするために前のステップで作成された DirectInputDevice8 オブジェクトが残っている。オブジェクトには、データ形式や協調レベルの設定、入力用の範囲プロパティの設定などの初期化が必要である。この処理については、「チュートリアル 3 : ジョイスティックの使い方」を参照すること。協調レベルには DISCL_EXCLUSIVE を含めなければならない。実際のアプリケーションではおそらくバックグラウンドでデバイスにアクセスする必要はないが、DISCL_BACKGROUND フラグは、デバッガのウィンドウに切り替えても取得を失わないため、デバッグ操作が簡単になる。

Call didev.SetCommonDataFormat(DIFORMAT_JOYSTICK2)
Call didev.SetCooperativeLevel(Me.hWnd, _
        DISCL_BACKGROUND Or DISCL_EXCLUSIVE)
' 範囲プロパティの設定などを行う。

フォース フィードバックの場合、デフォルトのスプリング アクションが生成するエフェクトに干渉しないように、デバイスの自動センタリング プロパティを無効にする方がよい場合が多い。これを行うには、DirectInputDevice8.SetProperty メソッドによって DIPROPLONG 型を送り、DIPROP_AUTOCENTER プロパティを 0 に設定する。

Dim prop As DIPROPLONG
prop.lData = 0
prop.lHow = DIPH_DEVICE
prop.lObj = 0
Call didev.SetProperty("DIPROP_AUTOCENTER", prop)

デバイスの構成が終わったら、構成を取得できる。

 didev.Acquire

フォース フィードバック デバイスの用意ができたら、使用するエフェクトを作成する。これについては、「ステップ 3 : エフェクトの作成」で説明する。