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

Récupère une vue de la lecture d'entrée qui décrit l'état d'une manette.

## Syntaxe

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

### Paramètres

*state*   \_Out\_\
Type : [GameInputGamepadState\*](/fr/reference/input/gameinput/structs/gameinputgamepadstate)

Interprétation de l'entrée en tant que manette.

### Valeur de retour

Type : bool

Retourne true si l'interprétation en tant que manette réussit.
Retourne false lors d'une tentative de lecture d'une entrée qui n'est pas reconnue comme une manette.

## Remarques

Appelez la méthode [IGameInputReading::GetInputKind](/fr/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind) pour savoir quelles fonctions Get\*State retourneront une interprétation valide pour un [IGameInputReading](/fr/reference/input/gameinput/interfaces/igameinputreading/igameinputreading) donné. Chaque fonction Get\*State a une entrée correspondante dans l'énumération [IGameInputReading::GetInputKind](/fr/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind). Si vous tentez d'appeler une fonction Get\*State pour laquelle l'indicateur [IGameInputReading::GetInputKind](/fr/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind) correspondant n'est pas défini, la fonction retourne des valeurs au repos par défaut ainsi que la valeur de retour false.

L'exemple C++ suivant montre comment lire l'état de la manette.

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

## Configuration requise

[Vue d'ensemble de l'API Input](/fr/build/core-features/common/input/overviews/input-overview)\
[IGameInputReading](/fr/reference/input/gameinput/interfaces/igameinputreading/igameinputreading)\
[IGameInputReading::GetInputKind](/fr/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind)

## Historique des versions

| Version | Modifications |
| - | - |
| **v0** | Introduit. |


## Related topics

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