Menu
CoddyTech

Ausgewogene Diagonalen

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

Der Held aus der letzten Lektion ist diagonal zu schnell. Nach oben und rechts ergibt eine Geschwindigkeit von Vector2(200, -200). Dieser Vektor ist etwa 283 Pixel lang, nicht 200.

.normalized() behält die Richtung eines Vektors bei und macht ihn genau 1 lang. Multipliziere ihn mit der Geschwindigkeit:

var direction = Vector2(Input.get_axis("move_left", "move_right"), Input.get_axis("move_up", "move_down"))
velocity = direction.normalized() * speed
move_and_slide()

Jede Richtung bewegt sich dann mit 200 Pixeln pro Sekunde. Vector2(0, 0) bleibt beim Normalisieren null, sodass der Held anhält.

Input.get_vector() gibt bereits eine Richtung zurück, die höchstens 1 lang ist. Auch velocity = Input.get_vector("move_left", "move_right", "move_up", "move_down") * speed sorgt für faire Bewegung auf Diagonalen.

challenge icon

Aufgabe

Mittel

Lass die Spielfigur mit 200 Pixeln pro Sekunde in jede Richtung laufen, auch diagonal. Verwende .normalized() für eine Vector2-Richtung oder verwende Input.get_vector().

Probier es selbst

extends CharacterBody2D

var speed = 200

func _physics_process(delta):
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	velocity.y = Input.get_axis("move_up", "move_down") * speed
	move_and_slide()
quiz iconTeste dich selbst

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

Übe selbstständig: Godot-Playground