Spiel verbessern
Abstand zum Rand
Das abgeleitete Attribut imSicherenBereich liefert nur
true oder false. Für eine Warnanzeige wäre dagegen
interessant, wie weit eine Ente vom nächsten Rand entfernt ist. Die
Funktion minOf liefert den kleinsten ihrer Parameter.
Wie bei der bisherigen Randprüfung liegen die äußeren Begrenzungslinien
bei 0, world.width und world.height:
val abstandZumRand: Int
get() {
return minOf(
x,
world.width - x,
y,
world.height - y
)
}
Aufgabe 1
abstandZumRand in der Klasse
Ente. Ändere den Getter von imSicherenBereich so,
dass er nur noch prüft, ob abstandZumRand größer als 40 ist.
Teste das Spiel erneut.
Wir können nun warnen, wenn eine Ente sich dem Rand nähert.
Dazu müssen wir überprüfen, ob abstandZumRand
kleiner als ein bestimmter Wert ist.
Falls ja, soll eine Warnanzeige erscheinen. Die Anzeige kann beispielsweise
aus einem Text bestehen, der an einer festen Position auf dem Bildschirm erscheint.
Aufgabe 2
act() der Klasse Ente
eine Warnanzeige, die erscheint, sobald abstandZumRand
einen bestimmten Wert unterschreitet.
Die Anzeige soll verschwinden, sobald die Ente wieder weiter vom Rand entfernt ist.
Eigene Erweiterungen
Du kannst das Spiel auch selbst erweitern. Zum Beispiel könntest du die Anzahl der Enten und Krokodile verändern, die Geschwindigkeit anpassen oder den Schwierigkeitsgrad im Verlauf des Spiels erhöhen. Auch die Größe oder Farbe des sicheren Bereichs lässt sich verändern. Oder du entwickelst eine eigene Spielregel.