> ## 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

Recupera uma exibição da leitura de entrada que descreve o estado de um gamepad.

## Sintaxe

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

### Parâmetros

*state*   \_Out\_\
Tipo: [GameInputGamepadState\*](/pt-BR/reference/input/gameinput/structs/gameinputgamepadstate)

Interpretação da entrada como um gamepad.

### Valor retornado

Tipo: bool

Retorna true quando um gamepad é interpretado com êxito.
Retorna false ao tentar ler uma entrada que não é reconhecida como um gamepad.

## Comentários

Chame o método [IGameInputReading::GetInputKind](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind) para ver quais funções Get\*State retornarão uma interpretação válida para determinada [IGameInputReading](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/igameinputreading). Cada função Get\*State tem uma entrada correspondente na enumeração [IGameInputReading::GetInputKind](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind). Se você tentar chamar uma função Get\*State cujo sinalizador correspondente de [IGameInputReading::GetInputKind](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind) não esteja definido, a função retornará valores padrão de repouso, além de um valor retornado false.

O exemplo em C++ a seguir demonstra como ler o estado do gamepad.

```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);
}
```

## Requisitos

[Visão geral da API de entrada](/pt-BR/build/core-features/common/input/overviews/input-overview)\
[IGameInputReading](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/igameinputreading)\
[IGameInputReading::GetInputKind](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind)

## Histórico de versões

| Versão | Alterações |
| - | - |
| **v0** | Introduzido. |


## Related topics

- [IGameInputReading::GetDevice](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getdevice.md)
- [IGameInputReading::GetUiNavigationState](/pt-BR/reference/input/gameinput/deprecated/interfaces/igameinputreading/methods/igameinputreading_getuinavigationstate.md)
- [IGameInputReading::GetSensorsState](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getsensorsstate.md)
- [IGameInputReading::GetKeyState](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getkeystate.md)
- [IGameInputReading::GetMouseState](/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getmousestate.md)
