Menu
CoddyTech

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().

challenge icon

Sfida

Facile

Fai in modo che i muri fermino l’eroe.

  1. Sostituisci la riga position.x con una che imposta velocity.x su direction * speed, senza delta.
  2. 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

Esercitati da solo: Playground Godot