IGameInputReading::GetGamepadState (v0)

检索描述游戏板的状态的输入读取的视图。

语法

bool GetGamepadState(  
         GameInputGamepadState* state  
)  

参数

state _Out_
类型:GameInputGamepadState*

作为游戏板的输入的解释。

返回值

类型:bool

在成功解释某一游戏板后将返回 true。
在尝试读取未识别为游戏板的输入时返回 false。

备注

调用 IGameInputReading::GetInputKind 方法以查看哪些 Get*State 函数将返回某些 IGameInputReading 的有效解读。 每个 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