> ## 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 pour le développement avec le Software Development Kit XBOX One antérieur au GDK. Sur le plan conceptuel, `GameInput` voit les périphériques et les lectures d'entrée d'une façon différente. Cette rubrique décrit certaines différences clés entre `Windows.Xbox.Input` et `GameInput`.

## Centré sur les entrées ou centré sur les périphériques

La principale différence entre `Windows.Xbox.Input` et `GameInput` est que le premier vous oblige à commencer par rassembler les périphériques et à traiter l'état d'entrée comme une propriété d'un périphérique. En revanche, `GameInput` commence par 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

Lorsqu'un jeu démarre pour la première fois, l'utilisateur doit souvent appuyer sur **A** pour indiquer qu'il est prêt à continuer. Voici un exemple qui compare la façon de faire cela 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 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 comprendre les particularités de chaque périphérique. De plus, en stockant une copie locale de toutes les manettes, le code capture un état à un moment donné plutôt que d'obtenir les lectures les plus à jour.

### 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-CA/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getcurrentreading) avec un filtre [GameInputKind](/fr-CA/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 voudrez peut-être savoir avec quelle manette vous communiquez. Pour un exemple plus complet, consultez [Lectures GameInput](/fr-CA/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 plutôt obtenir l'état d'entrée le plus récent au moyen d'un seul appel de méthode. Vous pouvez choisir la quantité d'informations que vous voulez connaître sur chaque périphérique physique.</Note>

<a id="seeAlsoSection" />

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

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

## Voir aussi

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

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

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


## Related topics

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