Héros : Courir en douceur
Fait partie de la section Entrées et déplacements du Journey Godot de Coddy. Leçon 25 sur 28.
Le héros démarre et s'arrête en une seule image. Fais-le accélérer avec acceleration et s'arrêter avec friction :
var direction = Input.get_axis("move_left", "move_right")
if direction == 0:
velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)Utilise une acceleration de 1200 et une friction de 2400. Le héros atteint sa vitesse maximale en environ un cinquième de seconde, il a donc encore de la marge pour courir jusqu'à la fosse.
Défi
MoyenFais accélérer le héros et arrête-le en douceur.
- Ajoute
var acceleration = 1200etvar friction = 2400. - Stocke l’axe dans
var direction. Si aucune touche n’est enfoncée, utilisemove_towardpour amenervelocity.xà0par pas defriction * delta. - Si une touche est enfoncée, utilise
move_towardpour amener la vitesse àdirection * speedpar pas deacceleration * delta.
Appuie sur « Jouer » : le héros prend de la vitesse, glisse un peu quand tu t’arrêtes et franchit le gouffre. Puis appuie 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 : SauterEntraînez-vous par vous-même : Playground Godot