Menu
CoddyTech

Double saut

Fait partie de la section Entrées et déplacements du Journey Godot de Coddy. Leçon 17 sur 28.

Un double saut permet au héros de sauter une fois de plus dans les airs. is_on_floor() ne le permet pas, alors le héros compte ses sauts.

Garde le compte dans une variable. Mets-la à 2 lorsque le héros est au sol, puis soustrais-en un à chaque saut :

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

Le premier saut fait passer jumps_left à 1, et le saut en l’air le fait passer à 0. Une troisième pression ne fait rien. L’atterrissage le remet à 2.

challenge icon

Défi

Moyen

Fais faire un double saut au héros.

  1. Ajoute var jumps_left = 0 en haut, et définis sa valeur sur 2 lorsque is_on_floor().
  2. Saute lorsque jumps_left > 0 à la place de is_on_floor(), et retire-en un à jumps_left.

Appuie sur « Jouer » : le héros saute deux fois avant d’atterrir, jamais trois fois. Puis clique sur « Vérifier ».

Essayez vous-même

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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Entrées et déplacements

Entraînez-vous par vous-même : Playground Godot