Menu
CoddyTech

Monedas restantes

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

Cada moneda cuenta las monedas que quedan cuando la recoges. La primera muestra Coins left: 3, pero solo quedan dos.

queue_free() espera hasta el final del fotograma. Hasta entonces, la moneda sigue en su grupo, así que se cuenta a sí misma.

Primero saca la moneda del grupo con remove_from_group(). Se aplica de inmediato:

func _on_body_entered(body):
	remove_from_group("coins")
	print("Coins left: ", get_tree().get_nodes_in_group("coins").size())
	queue_free()

Las líneas se ejecutan de arriba abajo, así que remove_from_group debe ir antes del recuento.

challenge icon

Desafío

Intermedio

Corrige el recuento de monedas restantes.

  1. En _on_body_entered, saca la moneda del grupo coins antes de la línea print.
  2. Usa remove_from_group().

Pulsa «Jugar» y recoge las tres monedas: la consola muestra Coins left: 2, Coins left: 1, después Coins left: 0. Después, pulsa «Comprobar».

Pruébalo tú mismo

extends Area2D

func _ready():
	add_to_group("coins")
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	print("Coins left: ", get_tree().get_nodes_in_group("coins").size())
	queue_free()

Todas las lecciones de Señales y colisiones

Practica por tu cuenta: Playground de Godot