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 -= 1Le 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.
Défi
MoyenDonne 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()
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
2CharacterBody2D
CharacterBody2DSe déplacer avec une vélocitéLes murs vous arrêtentSe déplacer partoutDiagonales équilibrées5Projet : Héros de jeu de plateforme
Héros : CourirHéros : Sauter3Gravité et saut
Tomber sous l’effet de la gravitéSauter vers le hautUniquement depuis le solCourir et sauterSaut variableDouble sautEntraînez-vous par vous-même : Playground Godot