Platform SDK: DirectX

DIJOYSTATE2

DIJOYSTATE2 型は、拡張機能付きジョイスティック デバイスの状態に関する情報を格納する。この型は、DirectInputDevice.GetDeviceStateJoystick2 メソッドで使用される。

この型は、フォース フィードバック デバイスなど、非常に特殊なコントローラ向けの型なので、通常、アプリケーションはこの型を使用する必要はない。標準のゲーム コントローラの場合、DirectInputDevice.GetDeviceStateJoystick を呼び出すことで、DIJOYSTATE 型を使用してデータを取得する。

Type DIJOYSTATE2 
    buttons(0 To 31) 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

メンバ

buttons
ボタンの状態の配列。バイトの上位ビットは、対応するボタンがダウン状態にあるときに設定され、ボタンがアップ状態または存在しないときには消去される。
frx
x 軸トルクの情報。
fry
y 軸トルクの情報。
frz
z 軸トルクの情報。
fslider
追加軸のフォースの情報。
fx
x 軸フォースの情報。
fy
y 軸フォースの情報。
fz
z 軸フォースの情報。
POV
最高 4 つまでの方向コントローラ (視点ハットなど) の現在位置。この位置は、北から (ユーザーの正面側) 時計回りの実角度の 100 倍で表される。中心位置は通常 -1 と報告されるが、これについては「注意」を参照すること。5 つの位置しか持たないインジケータの場合、コントローラの値は -1、0、9,000、18,000、27,000 のいずれか 1 つの値を取る。
rx
ジョイスティックの x 軸回転の情報。ジョイスティックにこの軸がなければ、値はゼロである。
ry
ジョイスティックの y 軸回転の情報。ジョイスティックにこの軸がなければ、値はゼロである。
rz
ジョイスティックの z 軸回転の情報 (方向舵のコントロールでよく呼び出される)。ジョイスティックにこの軸がなければ、値はゼロである。
slider
2 つの追加軸の値。その意味はジョイスティックにより異なる。これらの値に関する意味情報を取得するには、DirectInputDevice.GetObjectInfo メソッドを使用する。
vrx
x 軸角速度の情報。
vry
y 軸角速度の情報。
vrz
z 軸角速度の情報。
vslider[0 To 1]
追加軸の速度の情報。
vx
x 軸速度の情報。
vy
y 軸速度の情報。
vz
z 軸速度の情報。
x
ジョイスティックの x 軸の情報 (通常は、スティックの左右の動き)。
y
ジョイスティックの y 軸の情報 (通常は、スティックの前後の動き)。
z
ジョイスティックの z 軸の情報 (通常は、スロットル制御)。ジョイスティックにこの軸がなければ、値はゼロである。

注意

拡張機能付きのジョイスティックにアクセスするには、DirectInputDevice.SetCommonDataFormat メソッドを呼び出し、DIFORMAT_JOYSTICK2 データ形式変数を渡すことで、デバイスの準備をしなければならない。

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

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

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