Als Abschlussübung für das Tutorial „JavaScript-BOM“ wird Schritt für Schritt die folgende kleine Anwendung entwickelt:
Das Spiel Single-Pong ist angelehnt an das legendäre und erste weltweit bekannte Viedeospiel „Pong“. Ziel des Spieles ist es, den orangenen Ball so lange wie möglich im Spiel zu halten. Berührt der Ball den oberen, unteren oder rechten Spielfeldrand, prallt der Ball im selben Winkel wieder ab. Berührt der Ball aber den linken Bildschirmrand, ist der Ball im Aus und das Spiel ist zu Ende. Mit dem Button „Start“ kann der orangene Ball verzögert gestartet werden. Mit dem Button „Stop“ kann das Spiel unerbrochen oder beendet werden. Mit den Button „hoch“ und „runter“ kann der Schläger nach oben und unten bewegt werden. Das Feld „Zeit“ zeigt die verstrichene Zeit eines Durchgangs und das Feld „Highscore“ die längste Zeit, die es ein Anwender geschafft hat, den Ball im Spiel zu behalten. Eine Besonderheit bei Single-Pong ist noch, dass der Anwender sich Anmelden kann, was bedeutet, dass der Name und der Highscore des Anwenders als Cookie gespeichert wird.
Im ersten Schritt wird die Struktur der Anwendung, d. h. das Grundgerüst, in HTML erstellt. Dazu werden alle erforderlichen HTML-Elemente in einer Tabelle dargestellt:
HTML-Datei:
Ergebnis:
Im zweiten Schritt wird das Style der Anwendung, d. h. die Formatierungen für die HTML-Elemente, in CSS erstellt. Dazu wird eine externe CSS-Datei verwendet, die im „head“-Bereich der HTML-Seite eingebunden wird:
CSS-Datei:
HTML-Datei:
Ergebnis:
Im dritten Schritt wird die Funktionalität der Anwendung mit Hilfe von JavaScript implementiert. Für den JavaScript-Code wird ebenfalls eine externe Datei verwendet, die in den „head“-Bereich der HTML-Datei eingebunden wird.
JavaScript-Datei:
HTML-Datei:
Ergebnis:
Im nächsten Schritt bekommen die beiden Button „Start“ und „Stop“ ihre Funktionalität. Wird der „Start“-Button angeklickt, startet die Bewegung des Balls verzögert. Berührt des Ball eine der Seiten, wird er umgelenkt. Wird der „Stop“-Button angeklickt, wird die Ballbewegung gestoppt und es erscheint ein Dialog mit der Frage, ob das Spiel beendet werden soll. Wird im Dialog „OK“ angeklickt, wird das Spiel beendet, indem Ball und Schläger gelöscht und erneut initialisiert werden. Wird der „Abbrechen“-Button angeklickt, wird die Ballbewegung fortgesetzt.
JavaScript-Datei:
Zeilen 27-30: Beendet die Verzögerung und das Intervall für die Ballbewegung
Zeilen 32-36: Löscht den Schläger und den Ball aus dem Spielfeld
Zeilen 38-50: Veränderung der Ballposition und Umlenken des Balls bei Erreichen des Spielfeldrands
Zeile 39: Referenz auf den Ball
Zeilen 40-41: X- und Y-Koordinate des Balls ermitteln
Zeilen 42-43: X- und Y-Koordinate des Balls verändern
Zeilen 44-47: Variable für die Ballbewegung negieren, beim erreichen des Spielfeldrands
Zeilen 48-49: Neue X- und Y-Koordinate des Balls setzen
Zeilen 52-54: Startet das Intervall für die Ballbewegung
Zeilen 56-59: Stoppt die Ballbewegung und startet die Startfunktion des Balls verzögert
Zeilen 61-69: Stoppt die Ballbewegung und öffnet eine Abfrage zum Beenden des Spiels
Zeile 62: Stoppt die Ballbewegung
Zeile 63: Abfrage, ob das Spiel beendet werden soll
Zeilen 64-67: Ist das Ergebnis der Abfrage „true“, werden Ball und Schläger gelöscht und neu initialisiert
Zeile 68: Ansonsten wird die Ballbewegung erneut gestartet
Ergebnis:
Im nächsten Schritt wird geprüft, ob der Ball mit dem Schläger kollidiert und dann umgelenkt. Berührt der Ball den linken Rand und kollidiert nicht mit dem Schläger, ist der Ball im Aus und das Spiel ist zu Ende.
JavaScript-Datei:
Ergebnis:
Im vorletzten Schritt wird die Spielzeit erfasst und ausgegeben. Außerdem wird bei Spielende geprüft, ob die Spielzeit größer ist als der Highscore und wenn ja, der Highscore entsprechend angepasst.
JavaScript-Datei:
Ergebnis:
JavaScript-Datei:
HTML-Datei:
Ergebnis:
--- |
ZeitHighscore |
00:0000:00 |
|
Die verwendeten Datien kannst du dir hier herunterladen: