Für das Spiel sind eine Reihe von Erweiterungen und Veränderungen denkbar, die z. B. die Optik verbessern oder das Spiel abwechslungsreicher und interessanter machen. Einige Ideen werden hier vorgestellt.
Mit nur einer Zeile weiteren Code lässt sich die Größe der Weltraumschrott-Objekt variieren. Dazu deklariert man in der Endlosschleife des Spiels vor dem Erzeugen der Hindernisse eine Variable für den Radius, dem man eine zufällige Zahl zuweist.
Statt Kreise als Hindernisse kann man auch Vierecke verwenden und diese mit Hilfe der
rotate()
-Methode während des Fluges rotieren lassen.
Weltraumschrott
von der Klasse Rectangle
erben.
Überarbeite die Attribute und den Konstruktor der Klasse und ergänze die act()
-Methode,
so dass sich die Hindernisse drehen.
Kreisförmige Hindernisse könnten auch periodisch anwachsen und wieder schrumpfen:
Das Spiel wird auch optisch ansprechender, wenn man statt der Kreise Sprites als Hindernisse wählt.
Die Klasse Weltraumschrott
müsste dann die Klasse Sprite
erweitern.
Denkbar wäre auch ein kooperativer Spielmodus mit zwei Spielern, bei dem die befreundeten Raumschiffe sich in einer Bildschirmhälfte bewegen. Aufgrund der Implementierung (eine Berührung mit irgendeinem grafischen Objekt führt zum Schaden) dürfen diese sich nicht gegenseitig berühren.
Die deklarierte Variable systemgeschwindigkeit
ist ein Maß für die bisher erreichte
Flugdauer bzw. die erreichten Spielpunkte. Diese könnten unter dem zweiten Spielbereich mit
Hilfe der Klasse Text
dargestellt werden.
Ein größeres Zeichenfenster erhält man durch Erzeugen einer neuen Welt zu Beginn des Spiels z. B. mit
new World(800, 700);
. Die beiden Parameter definieren die Breite und Höhe der Welt.
Ebenfalls mit Text
-Objekten könnte die Größe des Schadens der beiden Raumschiffe im
Zeichenfenster angezeigt werden. Beim Erreichen der maximalen Schadenspunkte könnte ein
entsprechender Hinweis in der zugehörigen Spielfeldhälfte erscheinen.
Text
, um Informationen zum Spiel auf dem Zeichenfenster darzustellen.
Greife dazu gegebenenfalls auf Attribute der Klassen Raumschiff
zu.
Um die Spieler zu möglichst wenig Steuerungsaktionen zu bewegen, könnte eine Menge an möglichem Treibstoff vorgegeben werden. Bei jedem Tastendruck wird dieser verkleinert. Bei leerem Tank ist das Raumschiff schließlich nicht mehr manövrierfähig.
Die Treibstoffanzeige könnte optisch durch einen kleiner werdenden Balken dargestellt werden.
Raumschiff
um ein Attriut treibstoff
. Sorge dafür, dass der Treibstoff
bei einer Beschleunigung verringert wird und das Raumschiff ohne Treibstoff nicht mehr beschleunigt werden kann.Schließlich könnten auch mehr als zwei Spieler gleichzeitig verschiedenen Raumschiffe steuern, entweder untereinander oder z. B. auch gemeinsam in einem Spielbereich.
Bei den vorgeschlagenen Implementierung wurde bewusst auf die Referenz von Objekten auf andere Objekte
verzichtet, weil dies den bayerischen Lehrplan der 9. Jahrgangsstufe des Gymnasiums übersteigt. Die in diesem Spiel vorkommenden
Objekte können also nicht miteinander kommunizieren.
Die verwendete Methode collidesWithAnyShape()
, die für die Spiellogik zentral ist,
ermöglicht den beteiligten Objekten nicht, den Kollisionspartner zu ermitteln und unterschiedlich
darauf zu reagieren.
Der Lehrplan der 10. Jahrgangsstufe bietet mit den Referenzattributen von Klassen
und den einfach indizierten Datenstrukturen wie Feldern oder Listen später viele weitere Möglichkeiten.