Menu
CoddyTech

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.

challenge icon

Défi

Moyen

Fais 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()
quiz iconTestez-vous

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

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