¿Has creado un personaje hermoso que se mueve… pero atraviesa paredes como si fuera Gasparín?
Bienvenido al mundo de las colisiones y la física:
el músculo invisible de todo lo que se siente “real” en tu juego.
🧱 ¿Qué son las colisiones?
Las colisiones hacen que los objetos en el juego interactúen físicamente.
En pocas palabras:
“Esto no puede pasar por aquí, y esto rebota si choca con aquello.”
Sin colisiones = tu personaje se va volando al infinito.
Con colisiones = camina, choca, salta, cae… y se siente natural.
⚙️ ¿Y cómo funciona la física en Godot?
Godot tiene un motor de física integrado y en tiempo real.
Eso quiere decir que puedes hacer cosas como:
-
Saltar y caer con gravedad
-
Rebotar, empujar o deslizarte
-
Detectar cuándo dos cuerpos se tocan
-
Disparar proyectiles que colisionan
Todo esto sin tener que programar desde cero.
🧩 Nodos esenciales para colisiones:
Nodo | ¿Para qué sirve? |
---|---|
StaticBody2D |
Cosas que no se mueven (suelo, paredes) |
CharacterBody2D |
Jugador o enemigo que se mueve |
RigidBody2D |
Cosas que reaccionan a la física (caen, giran) |
Area2D |
Zonas de detección (para recoger, dañar, etc) |
CollisionShape2D |
La forma física del objeto (rectángulo, círculo, etc.) |
🛠️ Ejemplo: personaje que choca y camina
➡️ Este código hace que el personaje corra, salte y choque correctamente con las plataformas.
🧪 Errores comunes
❌ Usar nodos sin CollisionShape2D
❌ Poner la colisión muy grande o mal alineada
❌ Olvidar llamar move_and_slide()
o move_and_collide()
❌ No activar monitoring
o collision_layer
en Area2D