Die Bewegung der Spieler spielt eine entscheidende Rolle dabei, Godot-Spiele spannender zu machen. Erfahren Sie, wie Sie es umsetzen.

Die Implementierung von Spielerbewegungen ist ein grundlegender Aspekt bei der Erstellung ansprechender Spiele in der Godot Game Engine. Spielerbewegungen ermöglichen es Benutzern, Charaktere zu steuern, Spielwelten zu erkunden und mit verschiedenen Elementen in der Spielumgebung zu interagieren.

Einrichten des Godot-Spiels

Erstellen Sie zunächst ein neues 2D-Projekt in die Godot Game Engine. Befolgen Sie dann diese Schritte, um Ihrem Spiel Spielerbewegungen hinzuzufügen

Erstellen Sie eine neue Szene, indem Sie mit der rechten Maustaste darauf klicken Dateisystem Bedienfeld und wählen Sie dann aus Neuer Ordner und es zu benennen Szenen. Im Inneren Szenen Klicken Sie mit der rechten Maustaste auf den Ordner und erstellen Sie eine neue 2D-Szene. Speichern Sie es unter einem passenden Namen, z. B. Player.tscn.

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

Füge hinzu ein CharacterBody2D Knoten zur Szene hinzufügen, indem Sie auf klicken Knoten hinzufügen drücken und auswählen CharacterBody2D aus der Knotenbibliothek.

Mit dem CharacterBody2D Klicken Sie auf den ausgewählten Knoten Untergeordneten Knoten hinzufügen Schaltfläche zum Hinzufügen eines CollisionShape2D. Passen Sie die Form an CollisionShape2D passend zu den Abmessungen des Spielers. Der Einfachheit halber können Sie eine rechteckige Form verwenden.

Als nächstes fügen Sie a hinzu Sprite2D Komponente zum CharacterBody2D Knoten und wählen Sie ein passendes Sprite für Ihren Spielercharakter.

Hinzufügen von Spielerbewegungen mithilfe der Tastatureingabe

Jetzt können Sie Spielerbewegungen über Tastatureingaben hinzufügen Player.gd Skript.

Erweitere CharacterBody2D Knoten, legen Sie die Bewegungsgeschwindigkeit fest und erhalten Sie die Eingabe über die Pfeiltasten (ui_left, ui_right, ui_up, ui_down). Berechnen Sie die Bewegungsgeschwindigkeit basierend auf der Eingaberichtung, normalisieren Sie sie und bewegen Sie den Spieler dann mithilfe von move_and_collide Funktion in der _Physik_Prozess Methode.

extends CharacterBody2D

var speed = 300

func _physics_process(delta):
var input_dir = Vector2.ZERO
if Input.is_action_pressed("ui_left"):
input_dir.x -= 1
if Input.is_action_pressed("ui_right"):
input_dir.x += 1
if Input.is_action_pressed("ui_up"):
input_dir.y -= 1
if Input.is_action_pressed("ui_down"):
input_dir.y += 1

velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)

Rotation hinzufügen

Damit der Spieler in die Bewegungsrichtung zeigt, können Sie ihm eine Drehung hinzufügen. Aktualisieren Sie die Player.gd Skript wie folgt:

extends CharacterBody2D

@export var speed = 400
@export var rotation_speed = 1.5

var rotation_direction = 0

func get_input():
rotation_direction = Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left")
velocity = transform.x * (Input.get_action_strength("ui_up") - Input.get_action_strength("ui_down")) * speed

func _physics_process(delta):
get_input()
rotation += rotation_direction * rotation_speed * delta
move_and_slide()

Der Spieler dreht sich in Bewegungsrichtung. Die Rotationsgeschwindigkeit kann mit eingestellt werden Drehgeschwindigkeit Variable.

Hinzufügen von Spielerbewegungen mithilfe der Mauseingabe

Jetzt können Sie die Spielerbewegung mithilfe der Mauseingabe implementieren, um den Spieler an die Position des Mausklicks zu bewegen oder den Spieler dazu zu bringen, auf den Mauszeiger zu blicken:

extends CharacterBody2D

@export var speed = 300

func _physics_process(delta):
if Input.is_action_just_pressed("click"):
var target_position = get_global_mouse_position()
var direction = (target_position - global_position).normalized()
velocity = direction * speed * delta
move_and_collide(velocity)

In diesem Code bewegt sich der Spieler immer dann zur Position des Mausklicks, wenn der klicken Aktion wird ausgelöst. Die Geschwindigkeit des Spielers kann mit gesteuert werden Geschwindigkeit Variable.

Darüber hinaus können Sie die mausbasierte Drehung auch wie folgt implementieren:

extends CharacterBody2D

func _physics_process(delta):
var mouse_position = get_global_mouse_position()
var target_direction = (mouse_position - global_position).angle()
rotation = target_direction

In dieser Version ist das Sprite des Spielers direkt auf die Position des Mauszeigers ausgerichtet.

Inklusive zusätzlicher Funktionen

Während die grundlegende Bewegung des Spielers für die meisten Spiele unerlässlich ist, kann das Hinzufügen zusätzlicher Funktionen das Spielerlebnis auf die nächste Stufe heben. Hier sind einige aufregende Funktionen, die Sie in Ihr Spiel integrieren können, um die Spielerbewegung zu verbessern:

Springen

Implementierung der Sprungmechanik ermöglicht es Spielern, Hindernisse zu überwinden, höhere Plattformen zu erreichen und der Spielwelt eine zusätzliche Ebene der Interaktivität hinzuzufügen. Sie können die Sprunghöhe steuern und Animationen hinzufügen, um es optisch ansprechend zu gestalten.

Sprint oder Sprint

Eine Sprint-Fähigkeit ermöglicht es dem Spieler, sich kurzzeitig schnell zu bewegen, was nützlich sein kann, um Feinden auszuweichen oder schwierige Gebiete zu durchqueren. Diese Funktion fügt dem Gameplay ein dynamisches Element hinzu und verbessert das Kontrollgefühl des Spielers.

Wandrutschen und Klettern

Durch die Einführung der Gleit- und Klettermechanik an Wänden können Spieler mit vertikalen Oberflächen interagieren. Spieler können Wände hinunterrutschen, Wandsprünge ausführen oder sogar bestimmte Hindernisse erklimmen. Dieses Feature ist besonders in Plattformspielen beliebt.

Plattformmechaniker

Für Plattformspielekönnen Sie Schwerkraft, Beschleunigung und Verzögerung einbeziehen, um ein reibungsloses und realistisches Bewegungserlebnis zu schaffen. Durch die Feinabstimmung dieser Mechaniken kann das Spiel ausgefeilter und unterhaltsamer wirken.

Denken Sie daran, dass der Schlüssel zur erfolgreichen Implementierung zusätzlicher Funktionen darin liegt, sie auszubalancieren und nahtlos in das Gameplay zu integrieren. Jedes Feature sollte die Kernbewegungsmechanik des Spielers ergänzen und zum gesamten Spielerlebnis beitragen.

Best Practices zum Hinzufügen von Spielerbewegungen

Wenn es darum geht, Spielerbewegungen in Ihrem Godot-Spiel zu implementieren, befolgen Sie diese Best Practices macht Ihren Code nicht nur sauberer und effizienter, sondern trägt auch zu einem besseren Player bei Erfahrung:

Separate Anliegen

Organisieren Sie Ihre Spielerbewegungslogik in separate Funktionen oder Skripte. Erstellen Sie beispielsweise ein Skript für die Verarbeitung von Spielereingaben, ein weiteres für die Charakterbewegung und möglicherweise noch eines für die Verarbeitung von Animationen.

Durch die Trennung von Belangen wird Ihr Code modularer und einfacher zu warten, außerdem wird eine bessere Zusammenarbeit zwischen den Teammitgliedern gefördert.

Verwenden Sie Delta Time

Multiplizieren Sie bei der Berechnung der Bewegung Ihre Werte immer mit der Delta-Zeit (Delta), um eine reibungslose Bewegung über verschiedene Bildraten hinweg sicherzustellen. Die Delta-Zeit stellt die seit dem letzten Frame verstrichene Zeit dar und stellt sicher, dass sich der Player unabhängig von der Leistung des Geräts mit einer konstanten Geschwindigkeit bewegt.

Bewegungsgeschwindigkeit begrenzen

Legen Sie maximale Bewegungsgeschwindigkeiten für Ihren Spieler fest, um unbeabsichtigte Hochgeschwindigkeitsbewegungen zu vermeiden. Diese Einschränkung kann hilfreich sein, um zu verhindern, dass Spieler die Spielphysik beeinträchtigen oder auf Probleme mit der Kollisionserkennung stoßen.

Betrachten Sie Physikebenen und Kollisionsmasken

Mit Godot können Sie Kollisionsebenen und Masken für verschiedene Objekte in Ihrem Spiel konfigurieren. Durch die richtige Einstellung dieser Ebenen und Masken können Sie steuern, welche Objekte während der Bewegung miteinander interagieren können. Beispielsweise möchten Sie möglicherweise, dass der Player mit festen Objekten kollidiert, aber nicht durch nicht feste Objekte hindurchgeht.

Fügen Sie visuelles und akustisches Feedback hinzu

Implementieren Sie visuelle Effekte und akustische Hinweise, um den Spielern während der Bewegung Feedback zu geben. Beispielsweise kann das Hinzufügen von Staubpartikeln beim Laufen des Spielers oder von Schrittgeräuschen das Gefühl des Eintauchens und Engagements verstärken.

Godot-Spiele stärker auf die Bewegung der Spieler einwirken lassen

Eine flüssige und reaktionsfähige Bewegungsmechanik kann das Spielerlebnis insgesamt erheblich verbessern. Egal, ob es darum geht, eine riesige Welt zu erkunden, Feinden auszuweichen oder Rätsel zu lösen, die reibungslose Bewegung des Spielers fördert das Eintauchen und hält die Spieler fesselnd.

Durch die Implementierung von Spielerbewegungen mithilfe von GDScript und dem CharacterBody2D-Knoten können Sie dynamische und unterhaltsame Spielerlebnisse schaffen. Die Fähigkeit, sich frei zu bewegen und mit der Spielwelt zu interagieren, stärkt die Spieler und gibt ihnen das Gefühl, mit der virtuellen Umgebung verbunden zu sein.