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 seule image et s’arrête en une seule image. Cela donne une impression de rigidité.
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) vaut 15. Répété à chaque image, cela donne 30, 45, et ainsi de suite jusqu’à 220.
Utilisez cette fonction 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, donc elle est multipliée 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, donc le héros ralentit jusqu’à l’arrêt.
Défi
MoyenFais accélérer et ralentir le héros en douceur. Définis velocity.x avec move_toward, en direction de direction * speed, de acceleration * delta à chaque image.
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()
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
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