SpriteAnimationen
Am besten lässt sich der AnimationController an einem Beispiel erklären. Daher am besten das sample-Projekt laden und sich das entsprechende Beispiel anschauen:
Am besten lässt sich der AnimationController an einem Beispiel erklären. Daher am besten das sample-Projekt laden und sich das entsprechende Beispiel anschauen:
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 Kreiserben 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…
Um Szenen einzubauen, muss man erstmal verstehen, wie diese in der Engine gehandhabt werden. Ein implementiertes Beispielprojekt findet sich bei den Samples: DefaultScene Die Engine selbst startet immer mit einer DefaultScene, welche alle Einstellungen aus der Engine übernimmt. Modul Will man Szenen implementieren, so muss man bei der Engine ein Modul anmelden. Dieses erbt von…
Um CanvasElemente anzeigen zu lassen, muss man erstmal eines erstellen. Da es sich bei CanvasElementum eine abstrakte Klasse handelt, kann man hiervon keine eigene Instanz (kein Objekt) erzeugen. Hierfür stehen die vorgefertigen Klassen wie Kreis oder Rechteck zur Verfügung. (Hinweis: Klassen für CanvasElemente besitzen Deutsche Namen und Properties, Klassen für Objekte, die der Physik-Simulation gehorchen…
Tastatureingaben Das Singleton Keyboard bildet alle momentan gedrückten Tasten ab. Man kann sie sehr einfach abfragen. Etwa in der animate()-Funktion der CanvasElements oder der Bodies: override suspend fun animate() { super.animate() if (Keyboard.isKeyDown(Key.DOWN)) { radius– } if (Keyboard.isKeyDown(Key.UP)) { radius++ } } Zusätzlich kann das Interface KeyEventReacteable eingebunden werden. Dies funktioniert ähnlich den Mouse-Events (siehe…
Die Main.kt (genauer: die Funktion main()) stellt den Einstiegspunkt für das Programm dar. Hier wird die Engine initialisiert und konfiguriert. Außerdem werden hier auch alle Objekte bei der Engine registriert, um sie anzeigen zu lassen. Aufbau Die Main.kt ist wie folgt aufgebaut: val engine = Engine() fun main() { GlobalScope.launch { engine.run { /** *…