Microsoft DirectX 8.0 (C++)

ジョイスティックの直接データ

ジョイスティックの現在の状態を取得するには、DIJOYSTATE 構造体または DIJOYSTATE2 構造体へのポインタを指定して IDirectInputDevice8::GetDeviceState メソッドを呼び出す。どちらの構造体を使用するかは、c_dfDIJoystickc_dfDIJoystick2 のどちらでデータ形式が設定されたのかによる (「デバイス データ形式」を参照すること)。構造体に返されるジョイスティックの状態には、軸座標、ボタンの状態、および視点コントローラの状態などがある。

DIJOYSTATE 構造体の最初の 7 つのメンバが軸座標を保持する。このうち最後のメンバ rglSlider は 2 つの値の配列である (ジョイスティック軸データの解釈を参照すること)。

rgdwPOV メンバには、4 つまでの視点コントローラの位置が含まれている。これらは、北から時計回り (または前方) の実角度の 100 倍で表される。中心位置 (中立点) は -1 として報告される。5 つの位置しか持たないコントローラの場合、位置は以下のどれか 1 つの値を取る。

中心位置として、-1 ではなく 65,535 を報告するドライバもある。POV 標識が中心位置にあるかどうかは、次のようにチェックしなければならない。

BOOL POVCentered = (LOWORD(dwPOV) == 0xFFFF);

rgbButtons メンバは、バイト配列である。データ形式によって、32 個または 128 個の各ボタンに 1 要素が対応する。各ボタンの上位ビットは、ボタンがダウン状態で設定され、アップ状態または存在しない場合に消去される

DIJOYSTATE2 構造体には、軸の速度、加速度、フォース、およびトルクについての情報を提供する追加メンバがある。

参照

バッファリング データと直接データ