Alles kommt wieder
Nach ein paar Sekunden ist der Spielspaß vorbei. Die Plattformen sind zu Ende, der Stachelfeind ist überwunden und unser Bugs stürzt in den Abgrund. Das wollen wir jetzt ändern.
Die Plattformen und der Stachelfeind sollen immer wieder ans andere Ende des Bildschirms gesetzt werden, wenn sie den Bildschirm verlassen.
Die letzte Plattform
Dazu verändern wir zunächst den Konstruktor der BunnyHop Klasse. Im Moment haben wir für jede Plattform ein Attribut. Damit wir unser Vorhaben realisieren können, müssen benötigen wir nur für die letzte Plattform ein Attribut.
Aufgaben
-
Verändere die Klasse BunnyHop so, dass die Attribute p1, p2, ... entfernt sind und ein neues Attribut letzte hinzugefügt ist.
-
Verändere anschließend das Hinzufügen von Plattformen im Konstruktor so, dass folgendes Struktogramm umgesetzt ist.
Getter und Setter
Um die letzte Plattform wieder an den Anfang zu verschieben, können wir die run
-Methode der Klasse Plattform um folgendes erweitern:
if (this.getX() + this.getWidth() < 0) {
Plattform letzte = spiel.getLetzte();
this.setX(letzte.getX() + letzte.getWidth() / 2 + this.getWidth() / 2);
beruehrt = false;
this.show();
spiel.setLetzte(this);
}
In diesem Stück Quelltext benutzen wir das Attribut spiel
, welches noch nicht in der Klasse Plattform definiert ist.
Wir benutzen auch die Methoden setLetzte
und getLetzte
der Klasse BunnyHop, die wir noch nicht implementiert haben.
Aufgaben
-
Erweitere die Klasse Plattform um das Attribut
spiel
. Wähle einen geeigneten Datentyp und weise dem Attribut im Konstruktor einen Wert zu. -
Erweitere die Klasse BunnyHop um die Methoden
public void setLetzte(Plattform pPlattform)
undpublic Plattform getLetzte()
.
Wo ist der Stachelfeind?
Auch der Stachelfeind soll wieder zurückkommen.
Aufgaben
- Der Stachelfeind soll, wenn er das Fenster verlassen hat, wieder an den Anfang gesetzt werden.