Heim > Web-Frontend > js-Tutorial > Wie kann JavaScript mehrere gleichzeitig gedrückte Tasten erkennen?

Wie kann JavaScript mehrere gleichzeitig gedrückte Tasten erkennen?

Linda Hamilton
Freigeben: 2024-12-14 07:43:15
Original
942 Leute haben es durchsucht

How Can JavaScript Detect Multiple Simultaneously Pressed Keys?

So erkennen Sie mithilfe von JavaScript, ob mehrere Tasten gleichzeitig gedrückt werden

Problembeschreibung

Wenn mehrere Tasten gleichzeitig gedrückt werden, kann es zu einer Spiel-Engine kommen Probleme mit der Schlüsselerkennung. Wenn Sie beispielsweise die Leertaste drücken, um zu springen, und die rechte Pfeiltaste drücken, um sich nach rechts zu bewegen, kann es sein, dass die Figur nach dem Springen anhält. Dies liegt daran, dass die Keydown-Funktion zur Erkennung von Tastendrücken nicht mehrere gleichzeitige Tastenanschläge verarbeiten kann.

Lösung

  1. Erstellen Sie ein JavaScript-Kartenobjekt, um gedrückte Tasten zu verfolgen.
var map = {};
Nach dem Login kopieren
  1. Ereignis-Listener sowohl an Keydown als auch an Keyup anhängen Ereignisse.
onkeydown = onkeyup = function(e) {
  e = e || event;
  map[e.keyCode] = e.type == 'keydown';
};
Nach dem Login kopieren
  1. Überprüfen Sie, ob innerhalb der Logik Ihrer Spiel-Engine mehrere Tasten gleichzeitig gedrückt werden.
if (map[17] && map[16] && map[65]) {
  // CTRL+SHIFT+A pressed
}
Nach dem Login kopieren

Zusätzliche Hinweise

  • keyCode ist zugunsten von key veraltet, das eine Zeichenfolgendarstellung der gedrückten Taste zurückgibt (z. B. „a“ für A).
  • Verwenden Sie addEventListener anstelle von element.onevent, da letzteres vorherige Handler überschreibt.
  • Verhindern Sie Standardbrowseraktionen, indem Sie event.preventDefault() verwenden.
  • Erwägen Sie die Erstellung eine Hilfsklasse oder Funktion zum Abstrahieren der Logik zur Erkennung mehrerer Schlüssel.

Das obige ist der detaillierte Inhalt vonWie kann JavaScript mehrere gleichzeitig gedrückte Tasten erkennen?. 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