Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Maussteuerung

Dies ist der 9. Schritt von 10 des Gamedev Canvas Tutorials. Sie können den Quellcode, wie er nach Abschluss dieser Lektion aussehen sollte, unter Gamedev-Canvas-workshop/lesson9.html finden.

Das Spiel an sich ist eigentlich fertig, also lassen Sie uns daran arbeiten, es zu verfeinern. Wir haben bereits Tastatursteuerung hinzugefügt, aber wir könnten problemlos auch Maussteuerung hinzufügen.

Auf Mausbewegungen hören

Auf Mausbewegungen zu hören ist weniger komplex als auf Tastendrucke: Wir benötigen nur den Listener für das mousemove-Ereignis. Fügen Sie die folgende Zeile an derselben Stelle wie die anderen Ereignis-Listener hinzu, direkt unter dem keyup-Ereignis:

js
document.addEventListener("mousemove", mouseMoveHandler);

Verankerung der Schlägerbewegung an die Mausbewegung

Wir können die Schlägerposition basierend auf den Zeigerkoordinaten aktualisieren — die folgende Handlerfunktion erledigt genau das. Fügen Sie die folgende Funktion in Ihren Code ein, unterhalb der zuvor hinzugefügten Zeile:

js
function mouseMoveHandler(e) {
  const relativeX = e.clientX - canvas.offsetLeft;
  if (relativeX > 0 && relativeX < canvas.width) {
    paddleX = relativeX - paddleWidth / 2;
  }
}

In dieser Funktion berechnen wir zuerst einen relativeX-Wert, der dem horizontalen Mausstandort im Viewport (e.clientX) minus dem Abstand zwischen der linken Kante der Leinwand und der linken Kante des Viewports (canvas.offsetLeft) entspricht – effektiv ist dies gleich dem Abstand zwischen der linken Kante der Leinwand und dem Mauszeiger. Wenn der relative X-Zeiger-Standort größer als Null und kleiner als die Canvas-Breite ist, befindet sich der Zeiger innerhalb der Canvas-Grenzen, und die paddleX-Position (verankert an der linken Kante des Schlägers) wird auf den relativeX-Wert minus die halbe Breite des Schlägers gesetzt, sodass die Bewegung tatsächlich relativ zur Mitte des Schlägers erfolgt.

Der Schläger wird nun der Position des Mauszeigers folgen, aber da wir die Bewegung auf die Größe der Canvas beschränken, wird er nicht vollständig an einer Seite verschwinden.

Vergleichen Sie Ihren Code

Dies ist der aktuellste Stand des Codes zum Vergleich:

Hinweis: Versuchen Sie, die Grenzen der Schlägerbewegung anzupassen, sodass der ganze Schläger an beiden Rändern der Canvas sichtbar ist, anstatt nur zur Hälfte.

Nächste Schritte

Jetzt haben wir ein vollständiges Spiel, und wir werden unsere Serie von Lektionen mit einigen weiteren kleinen Anpassungen abschließen — Abschluss.