Saut variable
Fait partie de la section Entrées et déplacements du Journey Godot de Coddy. Leçon 16 sur 28.
Dans la plupart des jeux de plateforme, une pression brève provoque un petit saut et un bouton maintenu enfoncé un saut complet.
Pour cela, interromps le saut quand le bouton est relâché. Input.is_action_just_released("jump") est vrai pendant la seule image où la touche se relève. Si le héros est encore en train de monter à ce moment-là, divise par deux sa vitesse ascendante :
if Input.is_action_just_released("jump") and velocity.y < 0:
velocity.y = velocity.y / 2velocity.y < 0 signifie que le héros est encore en train de monter. Sans cette condition, un relâchement pendant la descente ralentirait la chute.
Maintiens la touche enfoncée jusqu’à ce que le héros ait atteint le sommet du saut, et rien ne sera interrompu.
Défi
MoyenFais en sorte qu’une brève pression sur saut produise un petit bond.
- Après le
ifdu saut, ajoute unifpourInput.is_action_just_released("jump")etvelocity.y < 0. - À l’intérieur, divise
velocity.ypar deux.
Appuie sur « Jouer » : une brève pression sur la barre d’espace produit un petit bond, tandis qu’une pression maintenue produit le saut complet. 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
velocity.x = Input.get_axis("move_left", "move_right") * speed
move_and_slide()
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