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

# Portage de Windows.XBOX.Input vers GameInput

> Portage de Windows.XBOX.Input vers GameInput

<a id="introductionSection" />

`Windows.Xbox.Input` est l'API d'entrée utilisée pour le développement avec le kit de développement logiciel XBOX One antérieur au GDK. Sur le plan conceptuel, `GameInput` considère les périphériques et les lectures d'entrée d'une manière différente. Cette rubrique décrit certaines différences clés entre `Windows.Xbox.Input` et `GameInput`.

## Approche centrée sur les entrées et approche centrée sur les périphériques

La différence clé entre `Windows.Xbox.Input` et `GameInput` est que le premier vous oblige à commencer par rassembler les périphériques, l'état d'entrée étant une propriété d'un périphérique. À l'inverse, `GameInput` part d'un flux filtrable de lectures d'entrée auxquelles des périphériques sont associés.

## Détection de l'appui sur le bouton A

Au premier lancement d'un jeu, l'utilisateur doit souvent appuyer sur **A** pour indiquer qu'il est prêt à continuer. Voici un exemple qui compare la façon de procéder avec `Windows.Xbox.Input` et avec `GameInput`. Cet exemple ne recherche qu'une manette. Notez que les exemples sont simplifiés à des fins de démonstration.

### Windows.Xbox.Input

L'exemple de code suivant commence par énumérer toutes les manettes connectées au système et les stocker dans le vecteur `gamepads`. Il parcourt ensuite `gamepads` dans une boucle, examine la lecture d'entrée actuelle de chacune d'elles et vérifie si **A** est enfoncé dans chaque lecture.

<Note>Ce code fait référence à une API antérieure. Ces appels n'existent pas dans `GameInput`.</Note>

```c++ theme={null}
void PollGamepadInput()
{
    // Find all gamepads.
    IVectorView<IGamepad^>^ gamepads = Gamepad::GetGamepads();

    // Cycle through each gamepad.
    for ( unsigned int i = 0; i < gamepads->Size; ++i )
    {
        // Get the gamepad's current reading.
        IGamepadReading^ reading = gamepads->GetAt(i)->GetCurrentReading();

        if ( reading->IsAPressed )
        {
            // Logic for the A button being pressed.
        }
    }
}
```

Ce modèle pourrait être amélioré. Le jeu doit stocker des copies des différents périphériques connectés au système. Vous devez connaître les spécificités de chaque périphérique. De plus, en stockant une copie locale de toutes les manettes, le code capture un état à un instant donné au lieu d'obtenir les lectures les plus récentes.

### GameInput

Dans l'exemple de code suivant, le code recherche la lecture de manette la plus récente provenant de n'importe quel périphérique. En appelant [GetCurrentReading](/fr/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getcurrentreading) avec un filtre [GameInputKind](/fr/reference/input/gameinput/enums/gameinputkind) défini sur `GamePad`, le code demande à `m_gameInput` de ne retourner que les lectures de manette. Ensuite, le code interroge l'état de la lecture et vérifie si **A** est enfoncé.

Vous pouvez souhaiter garder une trace de la manette avec laquelle vous communiquez. Pour un exemple plus complet, consultez [Lectures GameInput](/fr/build/core-features/common/input/overviews/input-readings).

```c++ theme={null}
IGameInput* g_gameInput = nullptr;

HRESULT InitializeInput()
{
    return GameInputCreate(&g_gameInput);
}

void PollGamepadInput()
{
    ComPtr<IGameInputReading> reading;

    // Get the most current gamepad reading, not filtering by a specific device.
    // An error from the GetReading method indicates that no gamepad readings
    // were found.
    if (SUCCEEDED(g_gameInput->GetCurrentReading(GameInputKindGamepad, nullptr, &reading)))
    {
        // Read the gamepad state.
        GameInputGamepadState state;
        reading->GetGamepadState(&state);

        if (state.buttons & GameInputGamepadA)
        {
            // Logic for the A button being pressed.
        }
    }
}
```

<Note>`GameInput` ne vous oblige pas à parcourir les périphériques et à vérifier chaque lecture. Vous pouvez au contraire vérifier le dernier état des entrées en un seul appel de méthode. Vous choisissez ce que vous souhaitez savoir, peu ou beaucoup, sur chaque périphérique physique.</Note>

<a id="seeAlsoSection" />

## Documentation de référence de l'API

* [GameInput (contenu de l'API)](/fr/reference/input/gameinput/gameinput_members)

## Voir aussi

[Vue d'ensemble de GameInput](/fr/build/core-features/common/input/overviews/input-overview)

[Référence de l'API d'entrée](/fr/reference/input/gc-reference-input-toc)

[Microsoft Game Development Kit](/fr/services/playfab/sdks/platforms/gdk)


## Related topics

- [Portage du code d'entrée existant vers GameInput](/fr/build/core-features/common/input/porting/index.md)
- [Combinaison de GameInput avec des piles d'entrée existantes](/fr/build/core-features/common/input/porting/input-porting.md)
- [Guides de portage vers le GDK XBOX](/fr/home/build-first-title/porting-guides.md)
- [Portage de XInput vers GameInput](/fr/build/core-features/common/input/porting/input-porting-xinput.md)
- [Questions fréquentes sur GameInput](/fr/build/core-features/common/input/overviews/input-faq.md)
