Accélérer progressivement
Fait partie de la section Entrées et déplacements du Journey Godot de Coddy. Leçon 18 sur 28.
Le héros atteint sa vitesse maximale en une image et s’arrête en une image. Ça donne une impression de raideur.
move_toward(from, to, step) rapproche le nombre from de to d’au plus step, sans jamais le dépasser. move_toward(0, 220, 15) donne 15. Répétée à chaque image, cette opération donne 30, 45 et ainsi de suite jusqu’à 220.
Utilise-la sur velocity.x, en visant la vitesse demandée par les touches :
var direction = Input.get_axis("move_left", "move_right")
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)acceleration est la vitesse gagnée par seconde ; on la multiplie donc par delta. Avec une valeur de 900, le héros atteint 220 en environ un quart de seconde. Si aucune touche n’est maintenue, la cible est 0 et le héros ralentit jusqu’à s’arrêter.
Défi
MoyenFais accélérer et ralentir le héros en douceur.
- Stocke
Input.get_axis("move_left", "move_right")dansvar direction. - Définis
velocity.xavecmove_toward(velocity.x, direction * speed, acceleration * delta).
Appuie sur « Jouer » et maintiens une touche fléchée : le héros accélère jusqu’à 220, puis ralentit quand tu relâches la touche. Ensuite, clique sur « Vérifier ».
Essayez vous-même
extends CharacterBody2D
var speed = 220
var acceleration = 900
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
1Actions d’entrée
Appuyer pour se déplacerGauche et droiteUn axeQuatre directionsVient d’être appuyéEntrée non gérée4Mouvement fluide
Accélérer progressivementFrictionRegarder dans le sens du mouvementLimiter à l’écranLimiter sur les deux axes2CharacterBody2D
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 : SauterEntraînez-vous par vous-même : Playground Godot