Menu
CoddyTech

In Bewegungsrichtung schauen

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

Der Held ist nach rechts gerichtet gezeichnet und blickt auch dann noch nach rechts, wenn er nach links läuft.

Alles, was du vom Helden siehst, befindet sich in seinem untergeordneten Element Look. Ein scale.x von -1 spiegelt einen Knoten und seine untergeordneten Elemente von links nach rechts. Spiegle also Look:

if direction > 0:
	$Look.scale.x = 1
if direction < 0:
	$Look.scale.x = -1

Spiegle nicht das CharacterBody2D selbst, damit seine Kollisionsform unverändert bleibt. Wenn keine Taste gedrückt ist, ist direction 0 und keines der beiden if wird ausgeführt. Der Held blickt weiterhin in die Richtung, in die er sich zuletzt bewegt hat.

challenge icon

Aufgabe

Einfach

Lass den Helden in die Richtung schauen, in die er läuft.

  1. Setze vor move_and_slide() $Look.scale.x auf 1, wenn direction > 0.
  2. Setze den Wert auf -1, wenn direction < 0.

Drücke „Spielen“ und laufe nach links: Der Held dreht sich nach links und schaut weiter nach links, wenn du anhältst. Drücke dann „Prüfen“.

Probier es selbst

extends CharacterBody2D

var speed = 220
var acceleration = 900
var friction = 2400
var gravity = 1000
var jump_velocity = -500

func _physics_process(delta):
	velocity.y += gravity * delta
	if Input.is_action_just_pressed("jump") and is_on_floor():
		velocity.y = jump_velocity
	var direction = Input.get_axis("move_left", "move_right")
	if direction == 0:
		velocity.x = move_toward(velocity.x, 0, friction * delta)
	else:
		velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
	move_and_slide()

Alle Lektionen in Eingabe und Bewegung

Übe selbstständig: Godot-Playground