s n h m r u

Minimallogo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

s n h m r u
i

Spiel verbessern

Immer wieder büxt ein Tier aus

Bisher wird das Spielfeld immer leerer. Spannender wird es, wenn während des Spiels neue Tiere ausbüxen. Dafür ergänzen wir die Methode act des Spielfelds - hier sind zwei Vorschläge:

// Vorschlag 1
if((1..50).random() == 1) {
    addObject(Ausreisser(), 300, 200)
}
// Vorschlag 2
if(schritte % 50 == 0) {
    addObject(Ausreisser(), 300, 200)
}

(1..50).random() würfelt eine Zufallszahl von 1 bis 50. Der Operator % (sprich: modulo) liefert den Rest einer Division: 17 % 5 ergibt 2, denn 17 geteilt durch 5 ist 3, Rest 2.

Mehr zu Zufallszahlen findest du im Abschnitt Tipps zu Kotlin.

Aufgabe 1

Analysiere die beiden Vorschläge: Wann genau büxt bei Vorschlag 1 ein neues Tier aus, wann bei Vorschlag 2? Probiere beide aus. Beide funktionieren - aber das Spiel fühlt sich unterschiedlich an. Beschreibe den Unterschied und entscheide dich für einen Vorschlag.

Aufgabe 2

Bei beiden Vorschlägen erscheinen die neuen Tiere immer an derselben Position (300, 200). Sorge dafür, dass jedes neue Tier an einer zufälligen Position erscheint. Achte darauf, dass die Tiere nicht direkt am Rand landen.

Nicht immer dieselbe Katze

Bisher sehen alle Tiere gleich aus, denn im init-Block der Klasse Ausreisser steht das Bild fest. Schöner wäre es, wenn bei jedem neuen Tier der Zufall entscheidet, welches Tier ausbüxt. Im Ordner images liegen dafür z.B. cat.png, dog.png, frog.png, penguin.png und pig.png.

Die Idee: Du würfelst eine Zufallszahl und setzt je nach Ergebnis mit einer Fallunterscheidung ein anderes Bild.

init {
    val nummer = (1..3).random()
    // Setze je nach Wert von nummer eines der Bilder
    // cat.png, dog.png oder frog.png.
}

Aufgabe 3

Vervollständige den init-Block, sodass jedes Tier zufällig eines von drei Bildern bekommt. Wenn du magst, erweitere anschließend auf alle fünf Tierbilder.
Hilfe zum zufälligen Bild

Du brauchst eine Fallunterscheidung mit mehreren Fällen, wie du sie bei Tierisch Glücklich kennengelernt hast: Wenn nummer == 1 gilt, setzt du das erste Bild, sonst prüfst du mit else if auf nummer == 2 und setzt das zweite Bild - und im else-Fall das dritte.

Aufgabe 4

Alle Tiere laufen beim Start in dieselbe Richtung los. Sorge im init-Block dafür, dass jedes Tier in eine zufällige Richtung startet. Das geerbte Attribut rotation hilft dir dabei: Es enthält die Blickrichtung in Grad, also einen Wert von 0 bis 359.

Aufgabe 5

Gib dem Spielfeld einen Hintergrund. Die Klasse World hat dafür die Methode setBackground - schau im Abschnitt BluePlay nach, wie du sie benutzt.

Dein eigenes Spiel

Jetzt ist das Spiel deins. Im Ordner images liegen noch mehr Bilder - neben den Tieren zum Beispiel auch apple.png, pizza.png, hamburger.png und icecream.png. Du kannst also genauso gut Essen wegklicken statt Tiere einzufangen - dann passt du die Klassennamen und den Namen des Spiels einfach an.

Aufgabe 6

Mache das Spiel zu deinem eigenen: Wähle eigene Bilder, einen eigenen Spielnamen und passende Klassennamen. Überlege dir außerdem eine eigene Regel und baue sie ein - zum Beispiel: Manche Objekte darf man nicht anklicken.

Suche

v
100.123.2.2.7 Spiel verbessern
Kopieren durch Anklicken

Rückmeldung geben