Heim >Backend-Entwicklung >Golang >Wie kann ich einzelne Tastaturtastendrücke in Go lesen, ohne auf die Rückgabe warten zu müssen?

Wie kann ich einzelne Tastaturtastendrücke in Go lesen, ohne auf die Rückgabe warten zu müssen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-26 07:45:11314Durchsuche

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

Lesen von Tastatureingaben in Go

Der Umgang mit Tastatureingaben in Go stellt eine einzigartige Herausforderung dar, da die Standardfunktion ReadString erfordert, dass vor dem Lesen der Eingabe eine Eingabetaste gedrückt wird. Um diese Einschränkung zu überwinden, sind alternative Ansätze erforderlich, um Tastendruckereignisse einzeln zu erfassen.

Eine vielversprechende Lösung liegt in der Nutzung von Game-Engine-Bibliotheken, wie beispielsweise der Tastaturbibliothek von Azul3D. Spiel-Engines bieten häufig eine plattformunabhängige Eingabeverarbeitung, sodass Sie Rückrufe für verschiedene Tastenanschläge registrieren können.

Mit der Tastaturbibliothek können Sie beispielsweise einen Watcher erstellen, der den Status aller Tasten überwacht:

watcher := keyboard.NewWatcher()

Anschließend können Sie den Watcher abfragen, um den Status einer bestimmten Taste, z. B. des linken Pfeils, zu erhalten Taste:

status := watcher.States()
left := status[keyboard.ArrowLeft]

Wenn die Taste gedrückt wird, wird der Status auf „Down“ gesetzt:

if left == keyboard.Down {
    // The arrow to left is being held down
    // Do something!
}

Durch Durchlaufen der vom Beobachter zurückgegebenen Karte können Sie dies tun Identifizieren Sie alle aktuell gedrückten Tasten und reagieren Sie entsprechend.

Das obige ist der detaillierte Inhalt vonWie kann ich einzelne Tastaturtastendrücke in Go lesen, ohne auf die Rückgabe warten zu müssen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn