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.
Desafío
IntermedioHaz que Main oiga cada moneda que se recoge.
- En
coin.gd, declarasignal collectedy emítela antes dequeue_free(). - En
_ready()demain.gd, conecta elcollectedde cada moneda a una nueva función_on_coin_collected(). - 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
6Proyecto: Recolector de monedas
Recolector de monedas: CaminarRecolector de monedas: MonedasPractica por tu cuenta: Playground de Godot