Menu
CoddyTech

Ausgewogene Diagonalen

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

Der Held aus der vorherigen 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 seine Länge genau 1. 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()

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

Input.get_vector() gibt bereits eine Richtung mit einer Länge von höchstens 1 zurück. 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

Sorge dafür, dass der Held diagonal genauso schnell ist.

  1. Fasse beide Achsen in einem Vector2 zusammen: var direction = Vector2(Input.get_axis("move_left", "move_right"), Input.get_axis("move_up", "move_down")).
  2. Ersetze die beiden velocity-Zeilen durch velocity mit dem Wert direction.normalized() * speed.

Drücke „Spielen“: Der Held bewegt sich in alle Richtungen mit 200 Pixeln pro Sekunde, auch diagonal. Drücke dann „Prüfen“.

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