Maison > développement back-end > Golang > Comment puis-je lire les touches individuelles du clavier en Go sans attendre le retour ?

Comment puis-je lire les touches individuelles du clavier en Go sans attendre le retour ?

Linda Hamilton
Libérer: 2024-11-26 07:45:11
original
320 Les gens l'ont consulté

How Can I Read Individual Keyboard Keypresses in Go Without Waiting for Return?

Lecture de la saisie au clavier dans Go

La gestion de la saisie au clavier dans Go pose un défi unique car la fonction ReadString standard nécessite d'appuyer sur une touche de retour avant de lire la saisie. Pour surmonter cette limitation, des approches alternatives sont nécessaires pour capturer les événements de frappe individuellement.

Une solution prometteuse réside dans l'exploitation des bibliothèques de moteurs de jeu, telles que la bibliothèque de clavier d'Azul3D. Les moteurs de jeu fournissent souvent une gestion des entrées indépendante de la plate-forme, vous permettant d'enregistrer des rappels pour diverses frappes.

Par exemple, à l'aide de la bibliothèque de claviers, vous pouvez créer un observateur qui surveille l'état de toutes les touches :

watcher := keyboard.NewWatcher()
Copier après la connexion

Par la suite, vous pouvez interroger l'observateur pour obtenir l'état d'une touche spécifique, comme la flèche gauche clé :

status := watcher.States()
left := status[keyboard.ArrowLeft]
Copier après la connexion

Si la touche est enfoncée, l'état sera défini sur "Down":

if left == keyboard.Down {
    // The arrow to left is being held down
    // Do something!
}
Copier après la connexion

En parcourant la carte renvoyée par l'observateur, vous pouvez identifiez toutes les touches actuellement enfoncées et répondez en conséquence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal