Spielerszene erstellen¶
Mit den korrekten Projekteinstellungen kann mit der Arbeit am spielerkontrollierten Charakter begonnen werden.
Die erste erstellte Szene definiert das Player
-Objekt. Einer der Vorteile einer separaten Spieler-Szene ist, dass diese unabhängig vom Rest des Spiels getestet werden kann, bevor andere Teile des Spiels existieren müssen.
Node Struktur¶
Um zu beginnen, müssen wir einen Wurzel-Node für das Spieler-Objekt wählen. Als eine generelle Regel gilt, ein Wurzel-Node einer Szene sollte immer die gewünschte Funktionalität des Objektes reflektieren - was das Objekt ist. Klicken Sie auf den "Andere Node" - Knopf und fügen einen Area2D Node zu der Szene hinzu.
Godot zeigt ein Icon mit einem Warnhinweis im Node des Szenenbaumes. Dieses kann vorerst ignoriert werden, wir werden uns später darum kümmern.
Mit Area2D
können Objekte erkannt werden, die mit dem Spieler überlappen oder diesen berühren. Wir ändern den Namen des Nodes zu Player
, indem wir darauf Doppelklicken. Nun da wir den Wurzel-Node der Szene gesetzt haben, können wir weitere Nodes hinzufügen, um ihm damit mehr Funktionalität zu geben.
Bevor wir weitere untergeordnete Nodes zu Player
hinzufügen, wollen wir sicherstellen, dass wir diese nicht aus Versehen bewegen oder deren Größe ändern, indem wir auf sie klicken. Wählen Sie den Node aus und klicke auf das Symbol rechts neben dem Schloss; sein Tooltip lautet "Verhindert das Auswählen von Unterobjekten dieses Nodes."
Speichern Sie die Szene. Klicken Sie auf Szene -> Speichern oder drücken Ctrl + S unter Windows/Linux oder Cmd + S unter MacOS.
Bemerkung
Für dieses Projekt halten wir uns an die Godot-Namenskonvention.
GDScript: Klassen (Nodes) nutzen
PascalCase
, Variablen und Funktionensnake_case
und KonstantenALL_CAPS
(Siehe GDScript Stil-Richtlinien).C#: Klassen, Exportvariablen und Methoden verwenden die
PascalCase
-Schreibweise, private Felder_camelCase
, lokale Variablen und Parameter verwendencamelCase
(Siehe C# Stil-Richtlinien). Beachten Sie die genaue Schreibweise, wenn Sie Signale einbinden möchten.
Sprite-Animation¶
Klicken Sie auf den Player
Node und fügen ein AnimatedSprite Node als Unterobjekt hinzu. Das AnimatedSprite
übernimmt das Erscheinungsbild und die Animationen für unseren Spieler. Achten Sie auf das Warnsymbol neben dem Node . Ein AnimatedSprite
benötigt eine SpriteFrames Ressource, eine Liste der Animationen, die angezeigt werden können. Um eine zu erstellen suchen Sie die Eigenschaft Frames
im Inspektor und klicken "[leer]" -> "Neues SpriteFrames". Bei erneutem draufklicken, sollte nun sich automatisch das Animationspanel öffnen:
Auf der linken Seite befindet sich eine Liste von Animationen. Klicken Sie auf die "default" Animation und benennen sie in "walk" um. Dann klicken Sie auf die "hinzufügen" Schaltfläche, um eine zweite Animation "up" hinzuzufügen. Finden Sie die zwei Bilder, playerGrey_up[1/2]
und playerGrey_walk[1/2]
, im "Dateisystem"-Reiter und ziehen diese in den "Animationsbilder"-Bereich zu den entsprechenden Animationen:
Die Spielerbilder sind ein bisschen zu groß für das Spielefenster, also müssen wir sie verkleinern. Klicken Sie auf den AnimatedSprite
Node und setzen die Eigenschaft Scale
auf (0.5, 0.5)
. Sie können sie im Inspektor unterhalb der Überschrift Node2D
finden.
Abschließend fügen Sie ein CollisionShape2D als ein Unterobjekt von Player
hinzu. Er bestimmt die "Hitbox" des Spielers oder die Grenzen seines Kollisionsbereichs. Für diesen Charakter ist ein CapsuleShape2D
Node am besten geeignet. Klicken Sie im Inspektor neben "Shape" auf "[leer]" -> "Neues CapsuleShape2D". Verwenden Sie die zwei Anfasser und verändern die Form so, dass sie das Sprite überdeckt:
Wenn Sie fertig sind sollte Ihre Player
Szene die folgende Struktur haben:
Speichern Sie die Szene nach diesen Änderungen wieder ab.
Im nächsten Schritt wird ein Skript für die Bewegung und Animation zum Player Node hinzugefügt. Anschließend wird eine Kollisionserkennung hinzugefügt, um zu wissen, wenn der Player von etwas getroffen wird.