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

# Joystick

> Joystick

# Joystick

Un contrôle analogique qui se comporte comme un joystick.

## Propriétés

`type` - "joystick"

`axis` - *objet* ou *tableau*. Un [axe](/fr/reference/system/touchadaptationkit/types/game-streaming-touch-axis) unique ou un tableau d'[axes](/fr/reference/system/touchadaptationkit/types/game-streaming-touch-axis) qui décrivent le mappage de ce contrôle de joystick.

`action` - *objet*, *facultatif*. Une ou plusieurs [actions](/fr/reference/system/touchadaptationkit/types/game-streaming-touch-action) à appeler en plus du mappage d'axe.

`actionThreshold` - *nombre*, *facultatif*. Valeur minimale normalisée du joystick (radiale) requise pour appeler l'action. Valeur par défaut : 0.

`enabled` - *booléen*, *facultatif*. Valeur par défaut : `true`. Définit l'état visuel du contrôle sur activé/désactivé. Un contrôle désactivé continue de recevoir les entrées du joueur, mais ne modifie PAS son style visuel en fonction de ces entrées.

`expand` - *booléen*, *facultatif*. Valeur par défaut : `true`. Étend la plage du joystick pour correspondre aux préférences ergonomiques de l'utilisateur lorsqu'il est placé dans un emplacement de contrôle central. Définissez cette valeur sur false pour utiliser une taille de joystick fixe standardisée.

`relative` - *booléen*, *facultatif*.
Par défaut (`true`), le joystick calcule sa valeur de façon relative en fonction du toucher initial de l'utilisateur. Si cette valeur est définie sur `false`, la valeur est calculée en fonction du point central du contrôle.

`visible` - *booléen*, *facultatif*. Valeur par défaut : `true`. Détermine si le contrôle est affiché au joueur pour qu'il puisse interagir avec. Pour le modifier en cours de jeu, consultez [Modification des dispositions tactiles à l'aide de l'état du jeu](/fr/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-touch-changing-layouts-game-state#change_state).

`styles` - *objet*, *facultatif*. Personnalisation de la représentation visuelle du contrôle. Les styles sont représentés sous la forme d'un objet par état pouvant être stylisé.

Les états suivants du contrôle de bouton peuvent être stylisés :

* `default` - Le style de base.
* `disabled` - Le style lorsque le contrôle est désactivé. S'il n'est pas spécifié, une transformation est appliquée au style par défaut lorsque le contrôle est désactivé pour lui donner un aspect désactivé.
* `idle` - Appliqué lorsque le joueur n'interagit PAS avec le contrôle.
* `moving` - Appliqué lorsque le joueur interagit avec le bouton du joystick, quelle que soit la zone morte définie.
* `activated` - Appliqué lorsqu'une `action` est définie et que le bouton du joystick est déplacé au-delà du seuil d'exécution de l'action.

**Propriétés de style par état**

`opacity` - *nombre*, *facultatif*. L'opacité à appliquer au contrôle. Valeur par défaut : 1.0 pour tous les états sauf `disabled`.

`background` - *objet*, *facultatif*. Peut être une [couleur](/fr/reference/system/touchadaptationkit/types/game-streaming-touch-color) ou une [ressource image](/fr/reference/system/touchadaptationkit/types/game-streaming-touch-asset).

[`knob`](/fr/reference/system/touchadaptationkit/types/game-streaming-touch-knob) - *objet*, *facultatif*. L'objet [knob](/fr/reference/system/touchadaptationkit/types/game-streaming-touch-knob) spécifie le style de la partie du joystick semblable à un bouton avec laquelle le joueur peut interagir.

[`outline`](/fr/reference/system/touchadaptationkit/types/game-streaming-touch-joystick-outline) - *objet*, *facultatif*. L'objet [outline](/fr/reference/system/touchadaptationkit/types/game-streaming-touch-joystick-outline) spécifie le style du contour et de l'indicateur qui s'affichent lorsque le joueur interagit avec le joystick.

**Dimensions des ressources**

Pour chacun des objets de style qui acceptent des ressources image, une ressource donnée est fournie à une résolution de base ainsi qu'aux échelles 1.5x, 2.0x, 3.0x et 4.0x de cette résolution de base. La résolution d'une image donnée doit être inférieure ou égale aux résolutions maximales suivantes :

| Objet | @1.0x | @1.5x | @2.0x | @3.0x | @4.0x |
| :- | :- | :- | :- | :- | :- |
| background | 120x120 | 90x90 | 240x240 | 360x360 | 480x480 |
| knob.faceImage | 60x60 | 90x90 | 120x120 | 180x180 | 240x240 |
| knob.background | 60x60 | 90x90 | 120x120 | 180x180 | 240x240 |

## Remarques

Le contrôle `joystick` peut être utilisé pour fournir un contrôle analogique mappé aux différents joysticks de la manette physique.

Si le `joystick` est la principale méthode de déplacement, il est recommandé de le placer dans l'emplacement central gauche et de définir `expand` sur true afin d'offrir la meilleure expérience au joueur.

Envisagez de personnaliser `faceImage` pour indiquer au joueur ce que contrôle le joystick (c'est particulièrement important si votre jeu utilise plusieurs joysticks).

Pour les mouvements qui ne reposent que sur 1 axe, utilisez un joystick à axe unique afin d'optimiser la jouabilité.

**Remarques sur le style**

Si vous utilisez une ressource `background` et que `expand` est true, la ressource `background` ne sera PAS mise à l'échelle à la taille complète de l'emplacement central.

Par défaut, `outline` n'est affiché que pendant que le joueur interagit avec le contrôle.

Si vous utilisez une ressource `background` personnalisée et que `expand` est défini sur `true`, notez que la ressource ne s'étendra PAS avec la personnalisation des contrôles du joueur.

<Warning>Lors du streaming via la version Windows de Content Test Application, certains styles ne s'affichent pas correctement.</Warning>

## Exemples

#### Exemple 1 : Joystick simple

Un mappage de base 1:1 vers un joystick avec une légère zone morte. Les sticks de la manette physique calculent leur valeur par rotation.

**Figure 1. Contrôle de joystick**

<img src="https://mintcdn.com/microsoft-4404708b/gzrdvT5kpqAXKEQt/images/gdk/reference/game-streaming-touch-control-images-joystick.gif?s=913fb802bb674e41afbc275dd588b88f" alt="Utilisateur interagissant avec un joystick" width="400" height="400" data-path="images/gdk/reference/game-streaming-touch-control-images-joystick.gif" />

```JSON theme={null}
{

    "type": "joystick",
    "axis": {
        "input": "axisXY",
        "output": "leftJoystick",
        "deadzone": {
            "threshold": 0.05,
            "radial": true
        }
    }
}
```

#### Exemple 2 : Joystick qui passe de la marche au sprint lorsque le seuil est dépassé.

Lorsque le seuil (0.75) est dépassé, leftTrigger est envoyé en même temps que le mouvement du joystick. L'icône passe de 'walk' à 'sprint'

**Figure 1. Contrôle de joystick avec seuil d'action**

<img src="https://mintcdn.com/microsoft-4404708b/gzrdvT5kpqAXKEQt/images/gdk/reference/game-streaming-touch-control-images-joystick-with-threshold-action.gif?s=458d5bfd3de78ce9d89f06911b8bccc8" alt="Utilisateur interagissant avec un joystick doté d'un seuil d'action" width="400" height="400" data-path="images/gdk/reference/game-streaming-touch-control-images-joystick-with-threshold-action.gif" />

```JSON theme={null}
{
    "type": "joystick",
    "action": "leftTrigger",
    "actionThreshold":0.75,
    "axis": {
        "input": "axisXY",
        "output": "leftJoystick",
        "deadzone": {
            "threshold": 0.05,
            "radial": true
        }
    },
    "styles": {
        "default": {
            "knob": {
                "faceImage": {
                    "type": "icon",
                    "value": "walk"
                }
            }
        },
        "activated": {
            "knob": {
                "faceImage": {
                    "type": "icon",
                    "value": "sprint"
                },
                "background" : {
                    "type": "color",
                    "value": "#0e7a0d"
                }
            }
        }
    }
}

```

#### Exemple 3 : Joystick à axe unique (horizontal) ressemblant à un volant

**Figure 1. Contrôle de joystick horizontal en forme de volant**

<img src="https://mintcdn.com/microsoft-4404708b/VX3CRv5ayGEZiR8G/images/gdk/reference/game-streaming-touch-control-images-joystick-driving.gif?s=e3871f2e477b6ff164bdf1dc2f597819" alt="Utilisateur interagissant avec un joystick horizontal en forme de volant" width="400" height="400" data-path="images/gdk/reference/game-streaming-touch-control-images-joystick-driving.gif" />

```JSON theme={null}
{
    "type": "joystick",
    "axis": {
        "input": "axisX",
        "output": "leftJoystickX",
        "deadzone": {
            "threshold": 0.35
        }
    },
    "relative": false,
    "styles": {
        "default": {
            "knob": {
                "faceImage": {
                    "type": "icon",
                    "value": "steering"
                }
            }
        }
    }
}
```

#### Exemple 4 : Joystick avec des couleurs personnalisées

**Figure 1. Contrôle de joystick personnalisé**

<img src="https://mintcdn.com/microsoft-4404708b/VX3CRv5ayGEZiR8G/images/gdk/reference/game-streaming-touch-control-images-joystick-customized-colors.gif?s=b1675a6c7b27845e589c3d0d08452fac" alt="Utilisateur interagissant avec un joystick aux couleurs personnalisées" width="400" height="400" data-path="images/gdk/reference/game-streaming-touch-control-images-joystick-customized-colors.gif" />

```JSON theme={null}
{

    "type": "joystick",
    "axis": {
        "input": "axisXY",
        "output": "leftJoystick",
        "deadzone": {
            "threshold": 0.05,
            "radial": true
        }
    },
    "styles": {
        "default": {
            "outline" : {
                "stroke" : {
                    "type": "solid",
                    "color": "#107C10"
                }
            }
        }
    }
}
```

## Configuration requise

**Version de la disposition :** 1.0+ (fonctionnalités de style à partir de la version de disposition 3.0+)

## Voir aussi

[Référence du Touch Adaptation Kit](/fr/build/core-features/common/game-streaming/game-streaming-touch-touch-adaptation-kit-overview)


## Related topics

- [A designer's guide to building touch controls](/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-tak-designers-guide.md)
- [Guía del diseñador para crear controles táctiles](/es/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-tak-designers-guide.md)
- [Touch Adaptation Kit](/reference/system/touchadaptationkit/touchadaptationkit-reference.md)
- [Touch Adaptation Kit (TAK) Reference](/build/core-features/common/game-streaming/game-streaming-touch-touch-adaptation-kit-overview.md)
- [High Contrast Mode](/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-tak-high-contrast-mode.md)
