Zbieracz monet: Pozostałe monety
Część sekcji Sygnały i kolizje ścieżki Godot w Coddy. Lekcja 26 z 27.
Skrypt Main powinien wiedzieć, ile monet zostało. Przechowuj tę liczbę w zmiennej na początku pliku main.gd. Policz grupę raz na początku, a następnie odejmuj jeden za każdą zebraną monetę:
var coins_left = 0
func _ready():
coins_left = get_tree().get_nodes_in_group("coins").size()Dlaczego nie policzyć grupy w funkcji _on_coin_collected? Moneta wysyła sygnał collected tuż przed usunięciem samej siebie. Pozostaje w swojej grupie do końca klatki, więc wynik liczenia nadal by ją uwzględniał.
Wartość zmiennej zmienia się tylko wtedy, gdy ją zmienisz.
Wyzwanie
ŚredniSpraw, aby Main liczył pozostałe monety.
- Na początku pliku
main.gddodajvar coins_left = 0, a w_ready()ustaw tę wartość na liczbę elementów w grupiecoins. - W
_on_coin_collected()odejmij jeden i wypisz wynik zamiastGot a coin!:print("Coins left: ", coins_left).
Naciśnij „Graj” i zbierz monetę: w konsoli pojawi się Coins left: 5. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
extends Node2D
func _ready():
for coin in get_tree().get_nodes_in_group("coins"):
coin.collected.connect(_on_coin_collected)
func _on_coin_collected():
print("Got a coin!")
Wszystkie lekcje w sekcji Sygnały i kolizje
6Projekt: Zbieracz monet
Zbieracz monet: ChodzenieZbieracz monet: MonetyPoćwicz samodzielnie: Edytor online Godot