Entwickeln Sie eine fesselnde Spielumgebung für Ihre Godot-Spiele mit fesselnden Animationen.

Bei der Spieleentwicklung spielen Animationen eine entscheidende Rolle dabei, den Spielern ein fesselndes und immersives Erlebnis zu bieten. Das Hinzufügen von 2D-Animationen zu Ihrem Godot-Spiel kann Ihre Charaktere und Umgebungen zum Leben erwecken und sie optisch ansprechender und interaktiver machen.

Glücklicherweise bietet Godot leistungsstarke Tools und Funktionen zum einfachen Erstellen und Steuern von 2D-Animationen.

Einrichten des Godot-Spiels

Richten Sie zunächst eine einfache 2D-Spielszene ein die Godot-Spiel-Engine. Erstellen Sie eine neue Szene und fügen Sie eine hinzu KinematicBody2D Knoten als Spielercharakter. Im Inneren KinematicBody2D, füge hinzu ein CollisionShape2D mit einer rechteckigen Form, die die Kollisionsgrenzen des Spielers darstellt.

Der in diesem Artikel verwendete Code ist hier verfügbar GitHub-Repository Die Nutzung steht Ihnen unter der MIT-Lizenz kostenlos zur Verfügung.

instagram viewer

Fügen Sie außerdem eine hinzu AnimatedSprite Knoten, der die Animationen des Spielers verarbeitet. Stellen Sie außerdem sicher, dass Sie die folgenden Eingabeaktionen in Ihrem abbilden Eingabekarte:

Schreiben Sie als Nächstes den GDScript-Code, um die Bewegung des Spielers zu steuern. Hängen Sie das folgende Skript an die an KinematicBody2D Knoten:

 erweitert KinematicBody2Dconst SPEED = 200func _physics_process (delta): var Velocity = Vector2.ZERO if Input.is_action_pressed("move_left"): Velocity.x -= SPEED if Input.is_action_pressed("move_right"): Geschwindigkeit.x += GESCHWINDIGKEIT, wenn Input.is_action_pressed("move_up"): Geschwindigkeit.y -= GESCHWINDIGKEIT, wenn Input.is_action_pressed("move_down"): Geschwindigkeit.y += GESCHWINDIGKEIT Geschwindigkeit = move_and_slide (Geschwindigkeit)

Dieses Skript stellt eine konstante Geschwindigkeit für den Spieler ein und ermöglicht ihm, sich mit den Pfeiltasten oder WASD nach links, rechts, oben und unten zu bewegen.

SpriteSheet in AnimatedSprite hinzufügen

Konfigurieren Sie nun die AnimatedSprite um ein Spritesheet für Animationen zu verwenden. Wähle aus AnimatedSprite Knoten und navigieren Sie zum Rahmen Abschnitt auf der Registerkarte „Eigenschaften“ des Knotens. Klicken Sie hier auf Neue SpriteFrames Taste.

Wechseln Sie zum SpriteFrames Registerkarte unten im Godot-Editor. Im SpriteFrames Klicken Sie auf die Registerkarte Neue Animation Taste. Erstellen Sie Animationen wie z gehen Und Leerlauf indem Sie jeder Animation entsprechende Frames hinzufügen.

Darüber hinaus haben Sie die Möglichkeit, andere Animationen wie Schießen, Springen und Klettern zu erstellen für ein Plattformspiel. Klicken Sie anschließend auf Fügen Sie Frames aus SpriteSheet hinzu Klicken Sie auf die Schaltfläche, um einzelne Bilder automatisch aus dem Sprite-Sheet zu extrahieren.

Animationen mit GDScript steuern

Nachdem Sie Ihre Animationen nun eingerichtet haben, können Sie sie mithilfe von GDScript programmgesteuert steuern.

Abspielen und Stoppen der Animation

Die Steuerung der Wiedergabe von Animationen ist wichtig, um dynamische und interaktive Erlebnisse in Ihrem Spiel bereitzustellen. Der AnimatedSprite Der Knoten in Godot bietet Methoden zum Abspielen und Stoppen von Animationen gemäß Ihrer Spiellogik.

Erweitere KinematicBody2D Knoten und übernehmen die Animationssteuerung innerhalb des _Physik_Prozess Funktion. Du kannst den... benutzen play_animation Und stop_animation Eingaben, um die entsprechenden Animationsaktionen auszulösen.

 erweitert KinematicBody2Dfunc _physics_process (delta): # Spielt die Animation ab, wenn Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Stoppt die Animation und setzt sie auf den ersten Frame zurück, wenn Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0

Durch die Zuordnung der entsprechenden Eingabeaktionen können Sie den Spielern die Kontrolle über die Animationswiedergabe in Ihrem Spiel geben.

Beispielsweise könnten Sie die binden play_animation Aktion auf einen Tastendruck oder ein bestimmtes Ereignis in Ihrem Spiel, sodass der Spieler zu einem gewünschten Zeitpunkt eine Animationssequenz auslösen kann. Darüber hinaus können Sie Finden Sie urheberrechtsfreie Musik abspielen, während die Animation läuft.

Ebenso können Sie das auslösen stop_animation Aktionen, um die Animation vollständig zu stoppen.

Durch die Integration dieser Mechanismen zur Animationssteuerung können Sie den Animationen Ihres Spiels Tiefe und Interaktivität verleihen und so fesselndere und immersivere Erlebnisse für Ihre Spieler schaffen.

Drehen der Animation

Das Drehen der Animation kann Ihrem Spiel visuelles Interesse und Abwechslung verleihen. Sie können die programmgesteuert drehen AnimatedSprite Knoten, um die Ausrichtung der Animation zu ändern. Mit können Sie die Drehung in Grad anwenden drehen() Methode.

 erweitert KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # Dreht die Animation um 45 Grad im Uhrzeigersinn $AnimatedSprite.rotate (deg2rad (45))

Wenn Sie die damit verbundenen Tasten drücken rotation_animation (Sie können diese Aktion in Ihrer Eingabezuordnung definieren), die drehen() Methode wird auf aufgerufen AnimatedSprite Knoten. Es dreht den Knoten um 45 Grad im Uhrzeigersinn mit deg2rad() um die Grad in Bogenmaß umzuwandeln.

Beachten Sie, dass dadurch die Drehung auf das Ganze angewendet wird AnimatedSprite Knoten, einschließlich aller Frames der Animation. Wenn Sie also nur bestimmte Frames drehen möchten, müssen Sie diese möglicherweise in separate Frames aufteilen AnimatedSprite Knoten oder verwenden Sie andere Techniken wie das Spiegeln einzelner Frames.

Die Animation umdrehen

Das horizontale oder vertikale Spiegeln der Animation kann hilfreich sein, um Änderungen in der Zeichenrichtung widerzuspiegeln. In Godot, dem AnimatedSprite Der Knoten stellt Eigenschaften zur Steuerung des Spiegelns bereit.

Um die Animation horizontal zu spiegeln, legen Sie fest flip_h Eigentum der AnimatedSprite Zu WAHR. Dadurch wird die Animation entlang der horizontalen Achse gespiegelt. Ebenso wird die Einstellung vorgenommen flip_v Eigentum zu WAHR Spiegelt die Animation entlang der vertikalen Achse.

 erweitert KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # oder $AnimatedSprite.flip_v = true für vertikales Spiegeln

Wenn der Spieler die Taste drückt flip_animation Geben Sie die Aktion ein und legen Sie dann die fest flip_h Eigentum der AnimatedSprite Zu WAHR. Dadurch wird die Animation horizontal gespiegelt.

Verwendung von Signalen in AnimatedSprite

Zusätzlich zur programmgesteuerten Steuerung von Animationen bietet Godot ein leistungsstarkes Ereignissystem namens Signale. Mit Signalen können Sie auf bestimmte Ereignisse oder Änderungen reagieren, die während der Ausführung Ihres Spiels auftreten.

Im Fall von AnimatedSpritegibt es zwei wichtige Signale, die Sie nutzen können: animation_finished() Und frame_changed().

1. animation_finished() Signal

Der animation_finished() Das Signal wird ausgegeben, wenn die Animation das letzte Bild erreicht, entweder während einer einzelnen Wiedergabe oder in einer Schleife. Dieses Signal ist nützlich, wenn Sie nach Abschluss einer Animation Aktionen ausführen oder Ereignisse auslösen möchten.

 erweitert KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")func _on_animation_finished(): # Aktionen ausführen oder Ereignisse auslösen print("Animation fertig!") # Zusätzlicher Code hier...

Verbinden Sie die animation_finished() Signal der AnimatedSprite zum _on_animation_finished() Methode im selben Skript mit der verbinden() Funktion.

Wenn die Animation beendet ist, können Sie mit dem benutzerdefinierte Logik ausführen oder andere Funktionen auslösen _on_animation_finished() Methode.

2. frame_changed() Signal

Der frame_changed() Das Signal wird immer dann ausgegeben, wenn sich das aktuelle Bild der Animation ändert. Dies kann auftreten, wenn die Animation abgespielt wird oder wenn Sie den Frame programmgesteuert ändern. Mithilfe dieses Signals können Sie Frame-Änderungen erkennen und entsprechend reagieren.

 erweitert KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Aktionen basierend auf dem aktuellen Frame ausführen var currentFrame = $AnimatedSprite.frame print("Current Frame: ", currentFrame) # Zusätzlicher Code Hier...

Verbinden Sie die frame_changed() Signal der AnimatedSprite zum _on_frame_changed() Methode im selben Skript. Wenn sich der Rahmen ändert, können Sie mit auf den aktuellen Rahmen zugreifen _on_frame_changed() Methode und führen Sie Aktionen oder Logik basierend auf dem Wert des Frames aus.

Durch die Verwendung von Signalen können Sie auf Animationsereignisse wie Abschluss oder Bildwechsel reagieren und dynamische Verhaltensweisen integrieren oder bestimmte Aktionen in Ihrem Spiel auslösen.

Machen Sie Godot-Spiele mit Animationen ansprechender

Das Hinzufügen von 2D-Animationen zu Ihren Godot-Spielen kann das gesamte Spielerlebnis erheblich verbessern. Animationen erwecken Charaktere zum Leben und machen ihre Bewegungen und Aktionen optisch ansprechender. Durch die Integration von Animationen für verschiedene Aktionen wie Gehen, Laufen, Angreifen und Springen können Sie eine dynamische und immersive Spielumgebung schaffen.

Darüber hinaus können Sie Animationen auch verwenden, um dem Spieler visuelles Feedback zu geben. Dieses Feedback trägt dazu bei, das Spiel ansprechender und reaktionsschneller zu gestalten und das Gefühl der Kontrolle und des Engagements des Spielers zu stärken.