Menu
CoddyTech

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.

challenge icon

Wyzwanie

Średni

Popraw liczbę pozostałych monet.

  1. W funkcji _on_body_entered usuń monetę z grupy coins przed linią print.
  2. 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