IGameInputReading::GetGamepadState (v2)

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

语法

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

库:gameinput.lib

支持的平台: 窗户

另请参阅

输入 API 概述IGameInputReadingIGameInputReading::GetInputKind