> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IGameInputReading::GetGamepadState

> IGameInputReading::GetGamepadState

# IGameInputReading::GetGamepadState

擷取描述遊戲台狀態的輸入讀數檢視。

## 語法

```cpp theme={null}
bool GetGamepadState(
    GameInputGamepadState* state
);
```

### 參數

*state*   \_Out\_\
類型：[GameInputGamepadState\*](/zh-TW/reference/input/gameinput/structs/gameinputgamepadstate)

將輸入解譯為遊戲台的結果。

### 傳回值

類型：bool

成功解譯為遊戲台時傳回 true。
嘗試讀取無法辨識為遊戲台的輸入時傳回 false。

## 備註

呼叫 [IGameInputReading::GetInputKind](/zh-TW/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind) 方法，以查看哪些 Get\*State 函式會針對某個 [IGameInputReading](/zh-TW/reference/input/gameinput/interfaces/igameinputreading/igameinputreading) 傳回有效的解譯。每個 Get\*State 函式在 [IGameInputReading::GetInputKind](/zh-TW/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind) 列舉中都有對應的項目。如果您在未設定對應 [IGameInputReading::GetInputKind](/zh-TW/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind) 旗標的情況下呼叫 Get\*State 函式，該函式會傳回預設的靜止值，並傳回 false。

下列 C++ 範例示範如何讀取遊戲台狀態。

```cpp theme={null}
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);
}
```

## 需求

[輸入 API 概觀](/zh-TW/build/core-features/common/input/overviews/input-overview)\
[IGameInputReading](/zh-TW/reference/input/gameinput/interfaces/igameinputreading/igameinputreading)\
[IGameInputReading::GetInputKind](/zh-TW/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind)

## 版本歷程記錄

| 版本 | 變更 |
| - | - |
| **v0** | 推出。 |


## Related topics

- [IGameInputReading::GetGamepadState](/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getgamepadstate.md)
- [IGameInputReading::GetDevice](/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getdevice.md)
