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.
Desafío
IntermedioCorrige el recuento de monedas restantes.
- En
_on_body_entered, saca la moneda del grupocoinsantes de la líneaprint. - 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