Menu
CoddyTech

Diagonales équilibrées

Fait partie de la section Entrées et déplacements du Journey Godot de Coddy. Leçon 11 sur 28.

Le héros de la leçon précédente se déplace trop vite en diagonale. Haut et droite donnent une vitesse de Vector2(200, -200). Ce vecteur mesure environ 283 pixels de long, et non 200.

.normalized() conserve la direction d’un vecteur et lui donne exactement une longueur de 1. Multiplie-le par la vitesse :

var direction = Vector2(Input.get_axis("move_left", "move_right"), Input.get_axis("move_up", "move_down"))
velocity = direction.normalized() * speed
move_and_slide()

Chaque direction entraîne alors un déplacement de 200 pixels par seconde. Vector2(0, 0) reste nul après normalisation, donc le héros s’arrête.

Input.get_vector() renvoie déjà une direction d’une longueur maximale de 1. velocity = Input.get_vector("move_left", "move_right", "move_up", "move_down") * speed garantit aussi une vitesse constante en diagonale.

challenge icon

Défi

Moyen

Fais marcher le héros à 200 pixels par seconde dans toutes les directions, y compris en diagonale. Utilise .normalized() sur une direction Vector2, ou utilise Input.get_vector().

Essayez vous-même

extends CharacterBody2D

var speed = 200

func _physics_process(delta):
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	velocity.y = Input.get_axis("move_up", "move_down") * 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