次の方法で共有


DIJOYSTATE 構造体

DIJOYSTATE 構造体

ジョイスティック デバイスの状態を表す。この構造体は、IDirectInputDevice8::GetDeviceState メソッドで使う。

構文

typedef struct DIJOYSTATE {
    LONG lX;
    LONG lY;
    LONG lZ;
    LONG lRx;
    LONG lRy;
    LONG lRz;
    LONG rglSlider[2];
    DWORD rgdwPOV[4];
    BYTE rgbButtons[32];
} DIJOYSTATE, *LPDIJOYSTATE;

メンバ

  • lX
    通常はスティックの左右の動きを表す x 軸。
  • lY
    通常はスティックの前後の動きを表す y 軸。
  • lZ
    z 軸。スロットル制御を表す場合が多い。ジョイスティックにこの軸がない場合、値はゼロである。
  • lRx
    x 軸回転。ジョイスティックにこの軸がない場合、値はゼロである。
  • lRy
    y 軸回転。ジョイスティックにこの軸がない場合、値はゼロである。
  • lRz
    z 軸回転 (方向舵と呼ばれる)。ジョイスティックにこの軸がない場合、値はゼロである。
  • rglSlider
    2 つの追加軸 (以前には u 軸と v 軸と呼ばれていた)。この値の意味はジョイスティックで異なる。これらの値のセマンティクス情報を取得するには、IDirectInputDevice8::GetObjectInfo メソッドを使う。
  • rgdwPOV
    視点ハットなどの方向コントローラ。この位置は、北から (ユーザーの正面側) 時計回りの実角度の 100 倍で表される。中心位置は通常 –1 と報告されるが、「注意」を参照すること。5 つの位置しか持たないインジケータの場合、コントローラの値は –1、0、9,000、18,000、または 27,000 のいずれか 1 つの値をとる。
  • rgbButtons
    ボタンの配列。バイトの上位ビットは、対応するボタンがダウン状態にあるときに設定され、ボタンがアップ状態または存在しないときには消去される。

注意

ジョイスティック型のアクセスができるようにデバイスを準備するには、IDirectInputDevice8::SetDataFormat メソッドを呼び出し、c_dfDIJoystick グローバル データ形式変数を渡す。

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

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

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

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

構造体の情報

ヘッダー dinput.h
最低限のオペレーティング システム Windows 98

参照

DIJOYSTATE2