Menu
CoddyTech

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 / 2

velocity.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.

challenge icon

Défi

Moyen

Fais en sorte qu’une brève pression sur saut produise un petit bond.

  1. Après le if du saut, ajoute un if pour Input.is_action_just_released("jump") et velocity.y < 0.
  2. À l’intérieur, divise velocity.y par 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

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