Für die Interaktion mit Objekten im Spiel, wie beispielsweise das Einsammeln von Münzen, ist es notwendig Kollisionen zu erkennen. Wir bauen die notwendigen Funktionen und ein System ein, um Kollisionen mit mehreren unterschiedlichen Objekten zu erkennen, zu unterscheiden und darauf zu reagieren.
Wir fügen hierfür unserem Spiel Münzen zum Einsammeln sowie einen Gegner hinzu. Beide sollen am Ende zufällig auf unseren Plattformen gespawnt werden
.

  • Lade folgende Assets aus dem Asset Store in Dein Projekt (Der Kurs verwendet die „GDevelop Platformer“ Assets):
    • Münze
    • Monster
  • Erstelle dynamisch je eine Münze pro Plattform. Erweitere hierfür die Funktion createPlatform.
  • Implementiere eine Funktion inCollisionWidth zur Kollisionsabfrage zwischen dem einem Objekt und einer Liste von Objekten.
    • Das Objekt (hier der PC) und die Liste sollen als Eingangsparameter übergeben werden.
    • Die Funktion soll die Instanz aus der Objektliste zurückgeben, mit welcher die Kollision stattgefunden hat.
  • Hole Dir alle Instanzen der Münzen (Coin) und speichere sie in einer Variable Coins ab.
  • Nutze die Funktion inCollisionWith, um zu prüfen, ob eine Kollision zwischen PC und einer Münze stattgefunden hat.
    • Die Probe soll nur ausgeführt werden, wenn Coins länger als 0 ist.
    • Wenn eine Kollision mit einem Objekt mit dem Typ/Name Coin stattgefunden hat, soll diese gelöscht werden.

Monster Erweiterung – Additional collisions with other objects :

  • Erweitere die Funktion createPlatform nochmal, so dass dynamisch entweder eine Münze oder ein Monster je Plattform gespawnt wird.
    Tipp: Du kannst den scaleFactor als Entscheidungskriterium verwenden.
  • Hole Dir alle Instanzen der Münzen (Monster) und speichere sie in einer Variablen Monsters ab.
  • Erweitere die Kollisionsabfrage um die Monster, so dass zwischen Monster und Münzen unterschieden werden kann. Tipp: Füge die beiden Listen Coins und Monsters zusammen.
  • Bei Kollision mit einem Monster soll das Level neu geladen werden.

Zuletzt geändert: Dienstag, 25. Juli 2023, 00:12
Herausgeber: Land Baden-Württemberg, vertreten durch das Zentrum für Schulqualität und Lehrerbildung (ZSL), Heilbronner Straße 314, 70469 Stuttgart, Telefon 0711/21859-0, poststelle@zsl.kv.bwl.de
Verantwortlich im Sinne des Presserechts: ZSL, Irmgard Mühlhuber, Ref. 24 "Digitalisierung, Medienbildung", Heilbronner Straße 314, 70469 Stuttgart, Telefon 0711/21859-240, digitalebildung@zsl.kv.bwl.de
Kontakt zum/r behördlichen Datenschutzbeauftragte/n: datenschutz@zsl.kv.bwl.de