Wände halten dich auf
Teil des Abschnitts Eingabe und Bewegung der Godot-Journey von Coddy. Lektion 9 von 28.
Die Wände und die Säule sind StaticBody2D-Knoten. Ein statischer Körper bewegt sich nie. Jeder hat eine CollisionShape2D für seine feste Form und ein ColorRect, um sie darzustellen.
Nur move_and_slide() prüft auf Wände. Wenn du position änderst, wird der Körper bewegt, ohne dass eine Prüfung erfolgt, sodass er durch Wände hindurchgeht:
position.x += direction * speed * delta # durch Wände hindurch
velocity.x = direction * speed # von Wänden gestoppt
move_and_slide()Text nach # ist ein Kommentar. Godot überspringt ihn.
Ein Körper, der schräg auf eine Wand trifft, behält den Teil seiner Bewegung entlang der Wand bei. Er gleitet, anstatt stecken zu bleiben – daher der Name move_and_slide().
Aufgabe
EinfachDieser Held läuft durch die Säule und die Wände. Bewege ihn mit velocity und move_and_slide(), damit die Wände ihn aufhalten.
Probier es selbst
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var direction = Input.get_axis("move_left", "move_right")
position.x += direction * speed * delta
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Eingabe und Bewegung
2CharacterBody2D
CharacterBody2DMit Geschwindigkeit laufenWände halten dich aufÜberall laufenAusgewogene DiagonalenÜbe selbstständig: Godot-Playground