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.
Aufgabe
EinfachLass die Spielfigur sich mit ihrer Geschwindigkeit bewegen.
- Füge in
_physics_process()unter der Zeile mitvelocitymove_and_slide()hinzu. - 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
2CharacterBody2D
CharacterBody2DMit Geschwindigkeit laufenWände halten dich aufÜberall laufenAusgewogene DiagonalenÜbe selbstständig: Godot-Playground