Um CanvasElemente zu animieren kann man zwei Varianten wählen.
Subklasse erzeugen
Man erzeugt eine Subklasse vom CanvasElement, welches man animieren möchte. Zum Beispiel AnimierterKreis
, welche von Kreis
erben soll. In dieser Subklasse kann die animate()
Funktion überschrieben werden.
class AnimierterKreis : Kreis(){
override suspend fun onEveryFrame() {
super.animate()
x++
y++
}
}
Animationsroutine hinzufügen
Will man zu bereits bestehenden Objekten Animationen hinzufügen, muss man eine Animationsroutine erzeugen und diese dem Objekt zuteilen. Eine Animationsroutine ist nichts anderes, wie eine Funktion, welche in einer Variable gespeichert wurde:
val meinKreis = Kreis(x = 100.0, y = 100.0, radius = 20.0, fuellFarbe = Colors.LIGHTCORAL)
meinKreis.apply {
animationRoutine = {
x++
y++
}
}