Menu
CoddyTech

Held: Gleichmäßig laufen

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

Die Spielfigur setzt sich innerhalb eines einzigen Frames in Bewegung und kommt wieder zum Stillstand. Lass sie mit acceleration beschleunigen und mit friction abbremsen:

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)

Verwende für acceleration den Wert 1200 und für friction den Wert 2400. Die Spielfigur erreicht ihre volle Geschwindigkeit in etwa einer Fünftelsekunde, sodass sie am Abgrund noch genug Platz zum Laufen hat.

challenge icon

Aufgabe

Mittel

Lass den Helden beschleunigen und sanft anhalten.

  1. Füge var acceleration = 1200 und var friction = 2400 hinzu.
  2. Speichere die Achse in var direction. Wenn keine Taste gedrückt wird, bewege velocity.x mit move_toward um friction * delta in Richtung 0.
  3. Wenn eine Taste gedrückt wird, bewege dich mit move_toward um acceleration * delta in Richtung direction * speed.

Drücke „Spielen“: Der Held nimmt an Geschwindigkeit auf, rutscht ein wenig, wenn du anhältst, und überwindet die Grube. Drücke dann „Prüfen“.

Probier es selbst

extends CharacterBody2D

var speed = 220
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
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	move_and_slide()

Alle Lektionen in Eingabe und Bewegung

Übe selbstständig: Godot-Playground