EA 4.x Tutorial: Collisions
Dies ist ein Tutorial für die Engine Alpha 4.x. Diese funktioniert anders als die EDU-Version. Du findest eine Übersicht über alle Tutorials hier.
Inhaltsverzeichnis
Inhalt
In diesem Tutorial:
- Reagierst du auf Kollisionen verschiedener
Actor
-Objekte - Nutzt du verschiedene Möglichkeiten, um auf Kollisionen zu reagieren und diese aufzulösen
- Entwickelst du einen Doodle Jump clone
Spielkonzept und grundlegender Aufbau
Ein Frosch soll fröhlich durch das Spiel springen, wann immer er die Chance hat, sich vom Boden abzustoßen. In der Scene FroggyJump
kann der Spieler ein Objekt der Klasse Frog
steuern. Zusätzlich geben Objekte der Klasse Platform
halt.
Damit ergibt sich das Codegerüst für das Spiel:
Ein paar Erklärungen zum Codegerüst für FroggyJump
:
Physikalische Eigenschaften
Wie im Physics-Tutorial beschrieben, werden die physikalischen Eigenschaften der Spielobjekte und ihrer Umgebung bestimmt:
- Platformen sind statische Objekte: Sie ignorieren Schwerkraft und können nicht durch andere Objekte verschoben werden (egal mit wie viel Kraft der Frosch auf sie fällt).
- Der Frosch ist ein dynamisches Objekt: Er lässt sich von der Schwerkraft beeinflussen und wird von den statischen Platformen aufgehalten.
- In der Scene
FroggyJump
existiert eine Schwerkraft von 10 m/s^2. Sie wird mit [https://docs.engine-alpha.org/4.x/ea/Scene.html#setGravity-ea.Vector-setGravity(Vector)
gesetzt.
Bewegung des Frosches
Die Bewegung des Frosches wird in Der Frosch soll springen, sobald er die Möglichkeit dazu hat. Hierzu testen wir in jedem
Der größte Teil der onFrameUpdate
-Methode des Frosches fokussiert sich auf seine horizontale Bewegung
Kollisionen mit CollisionListener
kontrollieren
Das Interface CollisionListener
wurde bereits in seiner grundlegenden Form im Nutzereingabe-Tutorial benutzt.
CollisionListener
kann mehr als nur melden, wenn zwei Actor
-Objekte sich überschneiden. In unserem Froggy-Jump Spiel nutzen wir weitere Features von Kollisionen in der Engine.
Einseitig wirkende Platformen
Unser Frosch soll fähig sein, von unten "durch die Platform hindurch" zu springen. Von oben fallend soll er natürlich auf der Platform stehen bleiben.
Um diesen Effekt zu erzeugen, müssen Kollisionen zwischen Frosch und Platform unterschiedlich behandelt werden:
- Kollidiert der Frosch von unten, so soll die Kollision ignoriert werden. Er prallt so nicht von der Decke ab und kann weiter nach oben Springen.
- Kollidiert der Frosch von oben, so soll die Kollision normal aufgelöst werden, sodass er nicht durch den Boden fällt.
Anregung zum Experimentieren
- Optische Verbesserung: Der Frosch ist bisher nur ein einzelnes Bild. Das ist nur ein kleiner Teil eines großen, kostenfrei verfügbaren Asset Packs von Pixel Frog. Das Tutorial zu Animationen mit mehreren Zuständen kann dir helfen, den Frosch lebendiger aussehen zu lassen.
- Weitere Spielobjekte: Neben Bällen, die herunterfallen, können mehr gefahren auf den Spieler warten: Fliegende Gegner, die auf einer horizontalen hin und her fliegen, Felsbrocken, die von Paltform zu Platform herunterfallen. Pick Ups können dem Spieler zusätzliche Punkte geben... Lass deiner Kreativität freien lauf!