Microsoft DirectX 8.0 (Visual Basic)

DIJOYSTATE2

拡張機能の付いたジョイスティック デバイスの状態を表す。この型は、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

メンバ

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

注意

拡張機能付きのジョイスティックにアクセスするには、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 に移植する場合は、この点を考慮する必要がある。スライダ配列からスライダ データを取得するために必要な変更があれば行うこと。