Diagonali corrette
Fa parte della sezione Input e movimento del percorso Godot di Coddy. Lezione 11 di 28.
L'eroe della lezione precedente è troppo veloce in diagonale. Su e a destra producono una velocità di Vector2(200, -200). Quel vettore è lungo circa 283 pixel, non 200.
.normalized() mantiene la direzione di un vettore e lo porta a una lunghezza esatta di 1. Moltiplicalo per la velocità:
var direction = Vector2(Input.get_axis("move_left", "move_right"), Input.get_axis("move_up", "move_down"))
velocity = direction.normalized() * speed
move_and_slide()Così ogni direzione si muove a 200 pixel al secondo. Quando viene normalizzato, Vector2(0, 0) resta zero, quindi l'eroe si ferma.
Input.get_vector() restituisce già una direzione lunga al massimo 1. Anche velocity = Input.get_vector("move_left", "move_right", "move_up", "move_down") * speed garantisce una velocità uniforme in diagonale.
Sfida
MedioFai camminare l'eroe a 200 pixel al secondo in ogni direzione, anche in diagonale. Usa .normalized() su una direzione Vector2, oppure usa Input.get_vector().
Provalo tu
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()
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Input e movimento
2CharacterBody2D
CharacterBody2DCammina con la velocitàI muri ti fermanoCammina ovunqueDiagonali corretteEsercitati da solo: Playground Godot