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.
Sfida
MedioCorreggi il conteggio delle monete rimaste.
- In
_on_body_entered, rimuovi la moneta dal gruppocoinsprima della rigaprint. - 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