Menu
CoddyTech

Langsam beschleunigen

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

Der Held erreicht seine volle Geschwindigkeit in einem Frame und kommt in einem Frame zum Stillstand. Das wirkt steif.

move_toward(from, to, step) bewegt die Zahl from um höchstens step in Richtung to, ohne darüber hinauszugehen. move_toward(0, 220, 15) ergibt 15. Wiederholt in jedem Frame ergibt das 30, 45 und so weiter bis 220.

Verwende es für velocity.x, ausgerichtet auf die Geschwindigkeit, die die Tasten vorgeben:

var direction = Input.get_axis("move_left", "move_right")
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)

acceleration ist die pro Sekunde hinzugewonnene Geschwindigkeit, daher wird sie mit delta multipliziert. Bei 900 erreicht der Held 220 in etwa einer Viertelsekunde. Wenn keine Taste gedrückt gehalten wird, ist das Ziel 0, sodass der Held bis zum Stillstand abbremst.

challenge icon

Aufgabe

Mittel

Lass den Helden gleichmäßig beschleunigen und abbremsen. Setze velocity.x mit move_toward in Richtung direction * speed, und zwar pro Frame um acceleration * delta.

Probier es selbst

extends CharacterBody2D

var speed = 220
var acceleration = 900
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()
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