Microsoft DirectX 8.0 (Visual Basic) |
拡張機能の付いたジョイスティック デバイスの状態を表す。この型は、DirectInputDevice8.GetDeviceStateJoystick2 メソッドで使用される。
この型は、フォース フィードバック デバイスなど、非常に特殊なコントローラ向けの型なので、通常、アプリケーションはこの型を使用する必要はない。標準のゲーム コントローラの場合、DirectInputDevice8.GetDeviceStateJoystick を呼び出すことで、DIJOYSTATE 型を使用してデータを取得する。
Type DIJOYSTATE2 arx As Long ary As Long arz As Long aslider (0 to 1) As Long ax As Long ay As Long az As Long Buttons(0 To 127) As Byte frx As Long fry As Long frz As Long fslider(0 To 1) As Long fx As Long fy As Long fz As Long POV(0 To 3) As Long rx As Long ry As Long rz As Long slider(0 To 1) As Long vrx As Long vry As Long vrz As Long vslider(0 To 1) As Long vx As Long vy As Long vz As Long x As Long y As Long z As Long End Type
拡張機能付きのジョイスティックにアクセスするには、DirectInputDevice8.SetCommonDataFormat メソッドを呼び出し、DIFORMAT_JOYSTICK2 データ形式変数を渡すことで、デバイスの準備をしなければならない。
軸が相対モードである場合は、適切なメンバが位置の変化量を格納する。絶対モードの場合には、同じメンバが軸の絶対位置を格納する。
POV インジケータの中心位置を 65,535 と報告するドライバもある。POV インジケータが中心位置にあるかどうかは、次のようにして確認する。
Dim POVCentered as Boolean POVCentered = MyDijoystate2.POV(0) And &HFFFF
注 : Microsoft® DirectX® 7 では、一部のジョイスティックのスライダを Z 軸に割り当て、それ以降のコードでそのメンバからデータを取得することができた。DirectX 8 では、同じスライダをスライダ配列に割り当てる。アプリケーションを DirectX 8 に移植する場合は、この点を考慮する必要がある。スライダ配列からスライダ データを取得するために必要な変更があれば行うこと。