Informatik

Bildschirme und Level

Ein richtiges Spiel beginnt mit einem Startbildschirm und endet mit „Gewonnen“ oder „Verloren“. Und wer gewonnen hat, will das nächste, schwerere Level spielen. Jede dieser Ansichten ist in Scratch for Java eine eigene Bühne.

Von Bühne zu Bühne

Das Programm startet jetzt mit dem Startbildschirm. Drückt man die Leertaste, wechselt das Fenster zu einer neuen Welt:

Window.getInstance().transitionToStage(new Welt(naechstesLevel), 500);

Window.getInstance() liefert das eine Fenster des Programms, transitionToStage blendet innerhalb von 500 Millisekunden zur neuen Bühne über. Die alte Bühne mit allen ihren Figuren ist danach weg – jedes Level beginnt mit einer frischen Welt.

Die Welt selbst prüft in run(), ob das Level vorbei ist:

  • Gibt es keinen VerfolgerDonut mehr, hat der Spieler gewonnen.
  • Gibt es keinen SpielerDonut mehr, wurde er gefressen.

count(VerfolgerDonut.class) zählt dafür die Figuren einer Klasse auf der Bühne. Nach dem Wechsel steht return, damit der Rest von run() nicht mehr mit einem Spieler rechnet, den es vielleicht gar nicht mehr gibt.

Drei Bildschirme, eine Oberklasse

Start, Gewonnen und Verloren sehen fast gleich aus: ein Gitter, ein paar Zeilen Text, Leertaste startet ein Level. Was gleich ist, steht in der Oberklasse Bildschirm. Die Unterklassen unterscheiden sich nur im Text und darin, welches Level als Nächstes kommt – das geben sie dem Konstruktor der Oberklasse mit:

Bildschirm super(...) Leertaste startet
Startbildschirm super(0) Level 0
Gewonnen super(pLevel + 1) das nächste Level
Verloren super(0) wieder Level 0

Immer schwerer

Das Level steckt in der Welt und bestimmt zwei Dinge:

  • Es gibt 5 * (level + 1) Verfolger: 5 in Level 0, 10 in Level 1, …
  • Ihre Stärke liegt zwischen 10 und 20 * (level + 1).

a) Verfolge den Weg des Levels: Wo wird es festgelegt, wenn man in Level 2 gewinnt, und wie kommt es in die neue Welt?

b) Ändere die Formeln so, dass die Zahl der Verfolger langsamer wächst, ihre Stärke aber schneller.

c) Ergänze einen Text in der Welt, der oben das aktuelle Level anzeigt.

d) Was passiert, wenn man auf dem Startbildschirm eine andere Taste als die Leertaste drückt? Wo steht das im Code?

Weiterspielen

Rekord. Merke dir das höchste erreichte Level und zeige es auf dem Startbildschirm an. Wo kann der Wert gespeichert werden, wenn jede Bühne beim Wechsel neu erzeugt wird?

Pause. Mit P soll das Spiel anhalten und ein Pausenbildschirm erscheinen. Mit P geht es weiter – und zwar in derselben Welt, nicht in einer neuen.

Dein eigenes Spiel. Nimm Donut IO als Ausgangspunkt für etwas Eigenes: Fische im Meer, Planeten im All, Schneebälle auf einem Hang. Was ist bei dir die Stärke, was das Futter, was die Verfolger?

Bildschirme und Level

Teilbare URL erstellen

Abschnitte auswählen