Menu
CoddyTech

Recolector de monedas: Recolectadas

Parte de la sección Señales y colisiones del Journey de Godot de Coddy. Lección 25 de 27.

main.gd contiene las reglas del juego, como cuántas monedas quedan. Main tiene que enterarse cada vez que recoges una moneda. Por eso, cada moneda envía una señal y Main las escucha todas.

En coin.gd, declara signal collected y emítela justo antes de que la moneda se libere:

if body.is_in_group("player"):
	collected.emit()
	queue_free()

En main.gd, conecta todas las monedas del grupo, como hiciste con los pinchos:

for coin in get_tree().get_nodes_in_group("coins"):
	coin.collected.connect(_on_coin_collected)

Esto funciona en el _ready() de Main porque Godot prepara a los hijos antes que a su padre. Para entonces, todas las monedas ya se han unido al grupo.

challenge icon

Desafío

Intermedio

Haz que Main oiga cada moneda que se recoge.

  1. En coin.gd, declara signal collected y emítela antes de queue_free().
  2. En _ready() de main.gd, conecta el collected de cada moneda a una nueva función _on_coin_collected().
  3. Haz que esa función imprima Got a coin!.

Presiona «Jugar» y pasa por encima de una moneda: la consola muestra Got a coin!. Después, «Comprobar».

Pruébalo tú mismo

extends Node2D

func _ready():
	pass

Todas las lecciones de Señales y colisiones

Practica por tu cuenta: Playground de Godot