Doppelsprung
Teil des Abschnitts Eingabe und Bewegung der Godot-Journey von Coddy. Lektion 17 von 28.
Ein Doppelsprung lässt den Helden noch einmal in der Luft springen. is_on_floor() kann das nicht ermöglichen, also zählt der Held seine Sprünge.
Speichere die Anzahl in einer Variable. Setze sie auf 2, wenn 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 -= 1Beim ersten Sprung wird jumps_left zu 1, und beim Sprung in der Luft wird es zu 0. Ein dritter Tastendruck bewirkt nichts. Bei der Landung wird der Wert wieder auf 2 gesetzt.
Aufgabe
MittelGib dem Helden einen Doppelsprung.
- Füge oben
var jumps_left = 0hinzu und setze den Wert auf2, wennis_on_floor()gilt. - Springe anstelle von
is_on_floor(), wennjumps_left > 0, und ziehe eins vonjumps_leftab.
Drücke „Spielen“: Der Held springt zweimal, bevor er landet, niemals dreimal. 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
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()
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
3Schwerkraft und Springen
Mit Schwerkraft fallenNach oben springenNur vom Boden ausLaufen und springenVariabler SprungDoppelsprungÜbe selbstständig: Godot-Playground