Spiel verbessern
Neue Ausreisser
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.
Aufgabe 1
Aufgabe 2
Abwechslung bei den Ausreissern
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 und frog.png.
Die Idee: Eine Zufallszahl entscheidet mit einer Fallunterscheidung, welches Bild gesetzt wird.
init {
val nummer = (1..3).random()
// Setze je nach Wert von nummer eines der Bilder
// cat.png, dog.png oder frog.png.
}
Aufgabe 3
Hilfe zum zufälligen Bild
Du brauchst eine Fallunterscheidung mit mehreren Fällen:
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.
Mehr Hilfe zum zufälligen Bild
Bringe die Fallunterscheidung für drei mögliche Tierbilder in die richtige Reihenfolge.
init { §§fest
val nummer = (1..3).random() §§fest
if (nummer == 1) {
image = Image("cat.png") §§gruppe=bild
} else if (nummer == 2) {
image = Image("dog.png") §§gruppe=bild
} else {
image = Image("frog.png") §§gruppe=bild
}
} §§fest
Aufgabe 4
rotation hilft dir dabei: Es enthält die
Blickrichtung in Grad, also einen Wert von 0 bis 359.
Dein eigenes Spiel
Du kannst das Spiel auch noch weiter verändern und verbessern. Hier sind ein paar Ideen:
-
Im Ordner
imagesliegen noch mehr Bilder - neben den Tieren zum Beispiel auchapple.png,pizza.png,hamburger.pngundicecream.png. Statt Tiere einzufangen, können ebenso gut Lebensmittel weggeklickt werden. -
Die
Ausreisserkönnten auch noch andere Eigenschaften bekommen, z.B. Geschwindigkeiten. Die Geschwindigkeit wird beim Aufruf der Methodemoveals Parameter übergeben. Sie kann über die Lebensdauer des Tieres konstant bleiben oder sich ändern. - Die Richtung der Tiere könnte sich nach einer zufälligen Zeit ändern,
-
Die Klasse
Worldbesitzt die MethodesetBackground, mit der du den Hintergrund des Spielfelds ändern kannst. Schau in der Dokumentation zu BluePlay nach, wie du sie benutzt.