Menu
CoddyTech

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.

challenge icon

Défi

Moyen

Fais accélérer le héros et arrête-le en douceur.

  1. Ajoute var acceleration = 1200 et var friction = 2400.
  2. Stocke l’axe dans var direction. Si aucune touche n’est enfoncée, utilise move_toward pour amener velocity.x à 0 par pas de friction * delta.
  3. Si une touche est enfoncée, utilise move_toward pour amener la vitesse à direction * speed par pas de acceleration * 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

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