Menu
CoddyTech

Recolector de monedas: Monedas restantes

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

Main debe saber cuántas monedas quedan. Guarda la cantidad en una variable al principio de main.gd. Cuenta el grupo una vez al inicio y luego resta uno por cada moneda recogida:

var coins_left = 0

func _ready():
	coins_left = get_tree().get_nodes_in_group("coins").size()

¿Por qué no contar el grupo en _on_coin_collected? La moneda envía collected justo antes de liberarse. Permanece en su grupo hasta el final del fotograma, así que el recuento la incluiría.

Una variable solo cambia cuando la cambias.

challenge icon

Desafío

Intermedio

Haz que Main cuente las monedas que quedan.

  1. Al principio de main.gd, añade var coins_left = 0 y, en _ready(), asígnale el tamaño del grupo coins.
  2. En _on_coin_collected(), resta una y muéstralo en lugar de Got a coin!: print("Coins left: ", coins_left).

Pulsa «Jugar» y recoge una moneda: la consola muestra Coins left: 5. Después, pulsa «Comprobar».

Pruébalo tú mismo

extends Node2D

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

func _on_coin_collected():
	print("Got a coin!")

Todas las lecciones de Señales y colisiones

Practica por tu cuenta: Playground de Godot