Menu
CoddyTech

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.

challenge icon

Wyzwanie

Średni

Spraw, aby Main liczył pozostałe monety.

  1. Na początku pliku main.gd dodaj var coins_left = 0, a w _ready() ustaw tę wartość na liczbę elementów w grupie coins.
  2. W _on_coin_collected() odejmij jeden i wypisz wynik zamiast Got 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

Poćwicz samodzielnie: Edytor online Godot