次の方法で共有


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(&currentState); 
 
    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