IGameInputReading::GetGamepadState
ゲームパッドの状態を記述する入力読み取り値のビューを取得します。
構文
bool GetGamepadState(
GameInputGamepadState* state
)
パラメーター
state _Out_
型: GameInputGamepadState*
ゲームパッドとしての入力の解釈。
戻り値
型: bool
ゲームパッドの解釈に成功した場合に true を返します。
ゲームパッドとして認識されていない入力を読み取ろうとした場合は false を返します。
解説
一部の IGameInputReading に対して有効な解釈を返す Get*State 関数を調べるには、IGameInputReading::GetInputKind メソッドを呼び出します。 各 Get*State 関数には、IGameInputReading::GetInputKind 列挙型に対応するエントリがあります。 対応する IGameInputReading::GetInputKind フラグが設定されていない Get*State 関数を呼び出そうとすると、関数は既定の休止値と false の戻り値を返します。
次の C++ サンプルでは、ゲームパッドの状態を読み取る方法を示します。
void PlayerCrouch();
void PlayerStand();
void PlayerReload();
void PlayerMove(float, float);
void SetCameraOrientation(float, float);
void ProcessGamepadState(
_In_ IGameInputReading * prevReading,
_In_ IGameInputReading * currentReading) noexcept
{
GameInputGamepadState prevState, currentState;
prevReading->GetGamepadState(&prevState);
currentReading->GetGamepadState(¤tState);
GameInputGamepadButtons changedButtons = prevState.buttons ^ currentState.buttons;
GameInputGamepadButtons pressedButtons = changedButtons & currentState.buttons;
GameInputGamepadButtons releasedButtons = changedButtons ^ pressedButtons;
if (pressedButtons & GameInputGamepadRightShoulder)
{
PlayerCrouch();
}
else if (releasedButtons & GameInputGamepadRightShoulder)
{
PlayerStand();
}
if (pressedButtons & GameInputGamepadLeftShoulder)
{
PlayerReload();
}
PlayerMove(currentState.leftThumbstickX, currentState.leftThumbstickY);
SetCameraOrientation(currentState.rightThumbstickX, currentState.rightThumbstickY);
}
要件
ヘッダー: GameInput.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体
関連項目
入力 API の概要
IGameInputReading
IGameInputReading::GetInputKind