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 en l’air. is_on_floor() ne le permet pas, alors le héros compte ses sauts.

Conserve le compte dans une variable. Définis-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

Donne au héros un double saut. Il peut sauter deux fois avant d’atterrir, jamais trois fois. Compte les sauts dans une variable jumps_left qui est définie sur 2 au sol.

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