Menu
CoddyTech

CharacterBody2D

Teil des Abschnitts Eingabe und Bewegung der Godot-Journey von Coddy. Lektion 7 von 28.

Ein Node2D geht durch Wände hindurch. Ein CharacterBody2D stößt gegen Dinge. Im Tab Scene ist der Hero jetzt ein CharacterBody2D. Sein untergeordnetes Element CollisionShape2D ist ein Kreis, der die feste Größe des Helden festlegt. Die Wände und die Säule haben ebenfalls Kollisionsformen.

Ein Körper hat eine velocity, einen Vector2 in Pixeln pro Sekunde. Wenn du sie festlegst, bewegt sich nichts. move_and_slide() bewegt den Körper für einen Frame mit seiner Geschwindigkeit und hält ihn an allem Festen an:

func _physics_process(delta):
	velocity = Vector2(150, 0)
	move_and_slide()

Bewege Körper in _physics_process, das synchron mit der Physik ausgeführt wird. move_and_slide() berücksichtigt die Zeit des Frames, multipliziere velocity also niemals mit delta.

challenge icon

Aufgabe

Einfach

Lass die Spielfigur sich mit ihrer Geschwindigkeit bewegen.

  1. Füge in _physics_process() unter der Zeile mit velocity move_and_slide() hinzu.
  2. Rücke es wie die Zeile darüber um einen Tabulator ein.

Drücke „Spielen“: Die Spielfigur gleitet mit 150 Pixeln pro Sekunde nach rechts und hält an der Säule an. Drücke dann „Prüfen“.

Probier es selbst

extends CharacterBody2D

func _physics_process(delta):
	velocity = Vector2(150, 0)

Alle Lektionen in Eingabe und Bewegung

Übe selbstständig: Godot-Playground