Skip to main content
Utilisez cette rubrique pour comprendre les utilisations propres aux claviers et aux souris. Les claviers et les souris sont des entrées natives de GameInput.

Entrée clavier

La méthode GetKeyState récupère le code de balayage et les données de touche virtuelle pour chaque touche enfoncée d’un clavier. Ces données d’entrée sont ensuite retournées sous forme de tableau de longueur variable de structures GameInputKeyState. Une touche enfoncée est une touche maintenue au moment où le clavier a signalé une entrée. Les claviers varient quant à la fréquence à laquelle ils signalent les entrées, généralement de 125 Hz à 1 000 Hz. L’état du clavier est signalé séparément pour chaque clavier connecté au système. L’état rudimentaire du clavier est destiné à associer l’entrée clavier à des actions de jeu, comme le déplacement ou le tir d’une arme. Il n’est pas destiné à la saisie de texte normale ni aux autres API utilisées à cette fin.

Lecture de l’état des touches

Utilisez le code suivant pour implémenter GameInput pour les claviers et les souris dans votre titre.
L’état de chaque touche n’est pas stocké à un index fixe dans le tableau. Le nombre d’éléments valides du tableau augmente plutôt à mesure que des touches sont enfoncées. Le tableau rétrécit à mesure que les touches sont relâchées. Les nouvelles touches sont ajoutées à la fin du tableau et, lorsqu’une touche est relâchée, tous les éléments sont décalés vers le bas pour combler l’espace. GetKeyCount retourne le nombre de touches enfoncées, comme le montre le code suivant. Cela permet de déterminer la taille du tableau à allouer pour GetKeyState. Si le stateArray passé à GetKeyState est plus grand que le nombre de touches enfoncées, les éléments excédentaires du tableau ne sont ni écrits ni mis à zéro. À l’inverse, si stateArray est plus petit que le nombre de touches enfoncées, le tableau est rempli et les touches enfoncées excédentaires sont ignorées.
Les claviers standard ne peuvent signaler que quatre à six touches enfoncées à la fois, et même les claviers de jeu haut de gamme prennent rarement en charge plus de 12 à 16 touches simultanément. Ainsi, l’utilisation de GetKeyCount permet de garder une petite taille maximale de tableau. La taille maximale peut être interrogée au moyen de l’interface IGameInputDevice. Notez que le membre codePoint spécifie le glyphe que le système croit être imprimé sur la touche associée, selon la disposition de clavier actuelle. Il est destiné à afficher une représentation de la touche dans une interface de mappage des entrées, et non à créer des chaînes de saisie de texte.

Entrée souris

La méthode GetMouseState récupère l’état de déplacement et des boutons d’une souris, qui est retourné dans une seule structure GameInputMouseState, comme le montre le code suivant. Comme l’état du clavier, l’état de la souris est signalé séparément pour chaque souris connectée au système. <!—As with keyboard input, the CreateAggregateDevice method on the IGameInput interface is used to get the combined system mouse state.> —>

Lecture des déplacements de la souris

Le déplacement de la souris est signalé de façon native sous forme d’une série de valeurs delta, plutôt que sous forme de position absolue. Cela n’est pas compatible avec la nature d’interrogation de GetCurrentReading, car demander périodiquement la lecture actuelle de la souris risque de manquer plusieurs deltas intermédiaires. Plutôt que d’utiliser GetNextReading pour parcourir potentiellement des dizaines de lectures historiques de la souris et additionner les deltas, ceux-ci sont cumulés dans des valeurs virtuelles positionX et positionY. À partir de là, les deltas sont calculés en soustrayant les valeurs positionX et positionY des lectures précédentes obtenues. Les deltas individuels sont accessibles en parcourant toutes les lectures intermédiaires, ou au moyen des deltas cumulés lorsque des lectures intermédiaires ont été ignorées. Les valeurs positionX et positionY correspondent à la somme de tous les deltas de déplacement. Ces valeurs n’ont aucune corrélation avec les coordonnées de l’espace écran. La valeur delta cumulée ne concerne que les événements de souris qu’un processus reçoit lorsqu’il a le focus d’entrée.

Association d’utilisateurs

L’association d’utilisateurs n’est actuellement pas prise en charge pour les claviers et les souris. Il n’existe aucune interface permettant d’associer l’un ou l’autre de ces périphériques à un utilisateur.

Documentation de référence de l’API

Voir aussi

Lectures GameInput Appareils GameInput Rubriques avancées sur GameInput Référence de l’API d’entrée
Last modified on October 6, 2026