I muri ti fermano
Fa parte della sezione Input e movimento del percorso Godot di Coddy. Lezione 9 di 28.
Le pareti e la colonna sono nodi StaticBody2D. Un corpo statico non si muove mai. Ognuno ha una CollisionShape2D per la sua forma solida e un ColorRect per disegnarlo.
Solo move_and_slide() rileva le pareti. Modificando position si sposta il corpo senza effettuare controlli, quindi attraversa le pareti:
position.x += direction * speed * delta # attraverso i muri
velocity.x = direction * speed # bloccato dai muri
move_and_slide()Il testo dopo # è un commento. Godot lo ignora.
Un corpo che urta una parete in diagonale mantiene la componente del movimento lungo la parete. Scivola invece di fermarsi, da cui il nome move_and_slide().
Sfida
FacileFai in modo che i muri fermino l’eroe.
- Sostituisci la riga
position.xcon una che impostavelocity.xsudirection * speed, senzadelta. - Sotto, chiama
move_and_slide().
Premi «Gioca» e cammina in entrambe le direzioni: il pilastro e il muro fermano l’eroe. Poi premi «Verifica».
Provalo tu
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var direction = Input.get_axis("move_left", "move_right")
position.x += direction * speed * delta
Tutte le lezioni di Input e movimento
2CharacterBody2D
CharacterBody2DCammina con la velocitàI muri ti fermanoCammina ovunqueDiagonali corretteEsercitati da solo: Playground Godot