Informatik

Ingo, der Stachelmann

Das Ziel

Jetzt kann man verlieren. Ingo läuft Bugs entgegen; eine Berührung beendet das Spiel – und mit r geht es von vorn los.

So sieht das aus

Wie es gemacht ist

Die Bühne merkt sich in vorbei, ob das Spiel läuft. Dieses eine Attribut wirkt an drei Stellen:

Stelle Wirkung
getGeschwindigkeit liefert 0 – die ganze Welt bleibt stehen
Spieler.run zeigt das Kostüm verletzt und macht sonst nichts mehr
whenKeyPressed nur jetzt startet r ein neues Spiel

Das Spiel hat zwei Zustände: läuft und vorbei. Ein einziges Attribut entscheidet, welcher gilt, und alle anderen Klassen fragen danach. Wer den Zustand an mehreren Stellen speichert, bekommt früher oder später Widersprüche.

Der Neustart baut die Bühne einfach neu auf:

Window.getInstance().setStage(new BunnyHop());

Alle Objekte sind damit frisch – kein Aufräumen von Hand nötig.

Deine Aufgabe

a) Lauf absichtlich in Ingo hinein. Bleibt wirklich alles stehen?

b) Ingo steht im Weg, sobald er auftaucht. Sorg dafür, dass zwischen zwei Ingos immer genug Platz zum Landen bleibt.

c) Gib Bugs drei Leben statt einem. Erst beim dritten Treffer ist Schluss.

d) Lass Ingo laufen, statt nur zu stehen: Er hat die Kostüme spikeMan_walk1 und spikeMan_walk2.

Tipp 1: Abstand

this.setX(450 + this.pickRandom(0, 300)); setzt Ingo an eine zufällige Stelle rechts. Je größer die zweite Zahl, desto größer die möglichen Abstände. Für einen Mindestabstand addierst du eine feste Zahl dazu.

Tipp 2: Leben

Ein Treffer darf nicht in jedem Bild zählen – sonst sind alle drei Leben in einer Zwanzigstelsekunde weg. Nach einem Treffer braucht Bugs eine kurze Zeit der Unverwundbarkeit. this.getTimer("treffer").everyMillis(1500) hilft dabei.

Eine mögliche Lösung. Erfrage das Passwort bei deiner Lehrkraft oder sieh auf der Seite Lösungspasswörter nach.

Zum Herunterladen

Projekt: Ingo, der Stachelmann

Selbsttest

Ingo, der Stachelmann

Teilbare URL erstellen

Abschnitte auswählen