Menu
CoddyTech

Monete rimaste

Fa parte della sezione Segnali e collisioni del percorso Godot di Coddy. Lezione 17 di 27.

Ogni moneta qui conta quante monete restano quando la raccogli. La prima stampa Coins left: 3, ma ne restano solo due.

queue_free() aspetta fino alla fine del frame. Fino ad allora la moneta è ancora nel suo gruppo, quindi conta anche se stessa.

Prima rimuovi la moneta dal gruppo con remove_from_group(). L'effetto è immediato:

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

Le righe vengono eseguite dall'alto verso il basso, quindi remove_from_group deve precedere il conteggio.

challenge icon

Sfida

Medio

Correggi il conteggio delle monete rimaste.

  1. In _on_body_entered, rimuovi la moneta dal gruppo coins prima della riga print.
  2. Usa remove_from_group().

Premi «Gioca» e raccogli le tre monete: la Console mostra Coins left: 2, Coins left: 1, poi Coins left: 0. Poi premi «Verifica».

Provalo tu

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()

Tutte le lezioni di Segnali e collisioni

Esercitati da solo: Playground Godot