En Godot, los signals son como mensajes entre nodos que se mandan cuando “algo pasa”.

Imagina esto: tu personaje recoge una moneda → el juego le grita al marcador: “¡Hey, suma 1!”.
Eso es un signal. Comunicación clara, sin enredos.


🧠 ¿Para qué sirven los signals?

Sirven para que los nodos se hablen sin estar pegados con cinta. Así tu código es más limpio y fácil de mantener.

💬 Ejemplos comunes:

  • Cuando presionas un botón → que cambie de escena

  • Cuando se acaba el tiempo → que aparezca el “Game Over”

  • Cuando te matan → que suene una alarma y se reinicie el nivel

 

 

🔧 ¿Cómo se usa un signal?

1.Emitir el signal (desde el nodo que hace algo):

signal player_died

func _on_Enemy_body_entered(body):
if body.name == “Player”:
emit_signal(“player_died”)

2. Conectarlo (en el nodo que necesita reaccionar):

$Player.connect(“player_died”, Callable(self, “_on_PlayerDied”))

func _on_PlayerDied():
print(“Game Over bro.”)

 

 

 

📦 Bonus: señales ya vienen con Godot

No siempre necesitas crearlas tú. Muchos nodos ya las traen listas:

Nodo Signal Cuándo se dispara
Button pressed() Cuando haces clic
Area2D body_entered(body) Cuando un cuerpo entra en el área
Timer timeout() Cuando se agota el tiempo
AnimationPlayer animation_finished() Al terminar una animación