Menu
CoddyTech

Diagonales equilibradas

Parte de la sección Entrada y movimiento del Journey de Godot de Coddy. Lección 11 de 28.

El héroe de la lección anterior va demasiado rápido en diagonal. Arriba y a la derecha dan una velocidad de Vector2(200, -200). Ese vector mide aproximadamente 283 píxeles, no 200.

.normalized() conserva la dirección de un vector y hace que su longitud sea exactamente 1. Multiplica eso por la velocidad:

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

Después, todas las direcciones se mueven a 200 píxeles por segundo. Vector2(0, 0) sigue siendo cero al normalizarlo, así que el héroe se detiene.

Input.get_vector() ya devuelve una dirección de longitud como máximo 1. velocity = Input.get_vector("move_left", "move_right", "move_up", "move_down") * speed también mantiene una velocidad equilibrada en diagonal.

challenge icon

Desafío

Intermedio

Haz que el héroe camine a 200 píxeles por segundo en todas las direcciones, también en diagonal. Usa .normalized() en una dirección Vector2, o usa Input.get_vector().

Pruébalo tú mismo

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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Entrada y movimiento

Practica por tu cuenta: Playground de Godot