Pozostałe monety
Część sekcji Sygnały i kolizje ścieżki Godot w Coddy. Lekcja 17 z 27.
Każda moneta liczy tutaj monety pozostałe po jej zebraniu. Pierwsza wyświetla Coins left: 3, ale pozostają tylko dwie.
queue_free() czeka do końca klatki. Do tego czasu moneta nadal należy do swojej grupy, więc liczy samą siebie.
Najpierw usuń monetę z grupy za pomocą remove_from_group(). To działa natychmiast:
func _on_body_entered(body):
remove_from_group("coins")
print("Coins left: ", get_tree().get_nodes_in_group("coins").size())
queue_free()Wiersze są wykonywane od góry do dołu, więc remove_from_group musi wystąpić przed liczeniem.
Wyzwanie
ŚredniPopraw liczbę pozostałych monet.
- W funkcji
_on_body_enteredusuń monetę z grupycoinsprzed liniąprint. - Użyj
remove_from_group().
Naciśnij „Graj” i zbierz trzy monety: konsola wyświetli kolejno Coins left: 2, Coins left: 1, a następnie Coins left: 0. Potem naciśnij „Sprawdź”.
Spróbuj swoich sił
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()
Wszystkie lekcje w sekcji Sygnały i kolizje
Poćwicz samodzielnie: Edytor online Godot