Menu
CoddyTech

Doppelsprung

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

Ein Doppelsprung ermöglicht es dem Helden, in der Luft noch einmal zu springen. is_on_floor() kann das nicht erlauben, daher zählt der Held seine Sprünge.

Speichere die Anzahl in einer Variable. Setze sie auf 2, während der Held auf dem Boden ist, und ziehe für jeden Sprung eins ab:

var jumps_left = 0

func _physics_process(delta):
	velocity.y += gravity * delta
	if is_on_floor():
		jumps_left = 2
	if Input.is_action_just_pressed("jump") and jumps_left > 0:
		velocity.y = jump_velocity
		jumps_left -= 1

Beim ersten Sprung wird jumps_left zu 1, und beim Sprung in der Luft wird es zu 0. Ein drittes Drücken bewirkt nichts. Bei der Landung wird es wieder auf 2 gesetzt.

challenge icon

Aufgabe

Mittel

Gib dem Helden einen Doppelsprung. Er kann zweimal springen, bevor er landet, niemals dreimal. Zähle die Sprünge in einer jumps_left-Variable, die auf dem Boden auf 2 gesetzt wird.

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
	if Input.is_action_just_released("jump") and velocity.y < 0:
		velocity.y = velocity.y / 2
	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