Microsoft DirectX 8.0 (Visual Basic)

DIJOYSTATE

ジョイスティック デバイスの状態を表す ("ジョイスティック" には、ゲーム パッドやステアリング ホイールなど、ほかのコントローラも含まれる)。この型は、DirectInputDevice8.GetDeviceStateJoystick メソッドで使用される。

Type DIJOYSTATE
    Buttons(0 To 31) As Byte
    POV(0 To 3) As Long
    rx As Long
    ry As Long
    rz As Long
    slider(0 To 1) As Long
    x As Long
    y As Long
    z As Long
End Type

メンバ

Buttons
ボタンの配列。バイトの高次ビットは、対応するボタンがダウン状態にあるときに設定され、ボタンがアップ状態または存在しないときには消去される。
POV
方向コントローラ (視点ハットなど)。この位置は、北から (ユーザーの正面側) 時計回りの実角度の 100 倍で表される。中心位置は通常 -1 と報告されるが、これについては「注意」を参照すること。5 つの位置しか持たないインジケータの場合、コントローラの値は -1、0、9,000、18,000、27,000 のいずれか 1 つの値を取る。
rx
x 軸回転。ジョイスティックにこの軸がなければ、値はゼロである。
ry
y 軸回転。ジョイスティックにこの軸がなければ、値はゼロである。
rz
z 軸の回転。ジョイスティックにこの軸がなければ、値はゼロである。
slider
2 つの追加軸。その意味はジョイスティックにより異なる。これらの値の意味についての情報を取得するには、DirectInputDevice8.GetObjectInfo メソッドを使用する。
x
x 軸。通常は、スティックの左右の動き。
y
y 軸。通常は、スティックの前後の動き。
z
z 軸。スロットル コントロールであることが多い。ジョイスティックにこの軸がなければ、値はゼロである。

注意

ジョイスティック型のアクセスをするには、DirectInputDevice8.SetCommonDataFormat メソッドを呼び出し、DIFORMAT_JOYSTICK 形式定数を渡すことで、デバイスの準備をしなければならない。

軸が相対モードである場合は、適切なメンバが位置の変化量を格納する。絶対モードの場合には、同じメンバが軸の絶対位置を格納する。

POV インジケータの中心位置を 65,535 と報告するドライバもある。POV インジケータが中心位置にあるかどうかは、次のようにして確認する。

Dim POVCentered as Boolean
POVCentered = MyDijoystate.POV(0) And &HFFFF

注 :  Microsoft® DirectX® 7 では、一部のジョイスティックのスライダを Z 軸に割り当て、それ以降のコードでそのメンバからデータを取得することができた。DirectX 8 では、同じスライダをスライダ配列に割り当てる。アプリケーションを DirectX 8 に移植する場合は、この点を考慮する必要がある。スライダ配列からスライダ データを取得するために必要な変更があれば行うこと。

参照

DIJOYSTATE2