Moedas restantes
Parte da seção Sinais e colisões do Journey de Godot da Coddy. Lição 17 de 27.
Cada moeda aqui conta as moedas restantes quando você a pega. A primeira exibe Coins left: 3, mas restam apenas duas.
queue_free() espera até o fim do quadro. Até lá, a moeda ainda está no grupo, então conta a si mesma.
Remova a moeda do grupo primeiro com remove_from_group(). Isso acontece imediatamente:
func _on_body_entered(body):
remove_from_group("coins")
print("Coins left: ", get_tree().get_nodes_in_group("coins").size())
queue_free()As linhas são executadas de cima para baixo, então remove_from_group deve vir antes da contagem.
Desafio
MédioCorrija a contagem de moedas restantes.
- Em
_on_body_entered, remova a moeda do grupocoinsantes da linhaprint. - Use
remove_from_group().
Pressione “Jogar” e pegue as três moedas: o console mostra Coins left: 2, Coins left: 1 e, em seguida, Coins left: 0. Depois, pressione “Verificar”.
Experimente você mesmo
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 as lições de Sinais e colisões
Pratique por conta própria: Playground de Godot