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
Freigeben: 2024-11-26 07:45:11
Original
315 Leute haben es durchsucht

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()
Nach dem Login kopieren

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]
Nach dem Login kopieren

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!
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage