Game Over
Dies ist der 5. Schritt von 11 des Tutorials zum Erstellen eines Breakout-Spiels mit reinem JavaScript. Um das Spiel interessanter zu machen, führen wir die Möglichkeit ein, zu verlieren: Wenn Sie den Ball nicht treffen, bevor er den unteren Bildschirmrand erreicht, ist das Spiel vorbei.
So verlieren Sie
Damit Sie verlieren können, deaktivieren wir die Kollision des Balls mit dem unteren Bildschirmrand. Entfernen Sie den letzten Eintrag, { hitbox: { ...baseWallHitbox, top: canvas.height } }, aus der Liste colliders.
Dadurch prallt der Ball weiterhin von den drei Wänden oben, links und rechts ab. Die vierte Wand unten verschwindet jedoch, sodass der Ball aus dem Bildschirm fällt, wenn der Schläger ihn verfehlt. Wir müssen dies erkennen und entsprechend reagieren. Fügen Sie direkt nach dt -= hitTime die folgenden Zeilen in moveBall() ein:
const ballIsOutOfBounds = ball.hitbox.bottom > canvas.height;
if (ballIsOutOfBounds) {
// Game over logic
alert("Game over!");
location.reload();
return;
}
Diese Zeilen prüfen, ob sich der Ball außerhalb der Grenzen der Spielwelt – in unserem Fall des Canvas – befindet, und zeigen dann eine Meldung an. Wenn Sie die Meldung bestätigen, wird die Seite neu geladen und Sie können erneut spielen.
Hinweis:
Die Benutzerfreundlichkeit lässt hier zu wünschen übrig, da alert() einen Systemdialog anzeigt und das Spiel blockiert. In einem echten Spiel würden Sie wahrscheinlich einen eigenen modalen Dialog mit <dialog> gestalten.
Später fügen wir außerdem einen „Start“-Button hinzu. Hier beginnt das Spiel jedoch sofort beim Laden der Seite, sodass Sie möglicherweise „verlieren“, bevor Sie überhaupt zu spielen beginnen. Um den störenden Dialog zu vermeiden, verzichten wir ab jetzt auf den Aufruf von alert().
Vergleichen Sie Ihren Code
So sollte Ihr Spiel bisher aussehen; Sie können es hier direkt ausprobieren. Um den Quellcode anzuzeigen, klicken Sie auf die Schaltfläche „Play“.
Nächste Schritte
Die Grundlagen des Spiels stehen nun. Machen wir es interessanter, indem wir zerstörbare Steine hinzufügen: Als Nächstes bauen wir das Spielfeld aus Steinen.