Menu
CoddyTech
flag Ru iconРусскийdown icon

Оставшиеся монеты

Часть раздела Сигналы и столкновения путешествия по Godot на Coddy. Урок 17 из 27.

Каждая монета здесь подсчитывает оставшиеся монеты, когда ты её подбираешь. Первая выводит Coins left: 3, хотя осталось только две.

queue_free() ждёт до конца кадра. До этого момента монета всё ещё находится в своей группе, поэтому она считает и себя.

Сначала убери монету из группы с помощью remove_from_group(). Это срабатывает сразу:

func _on_body_entered(body):
	remove_from_group("coins")
	print("Coins left: ", get_tree().get_nodes_in_group("coins").size())
	queue_free()

Строки выполняются сверху вниз, поэтому remove_from_group нужно вызвать до подсчёта.

challenge icon

Задание

Средне

Исправь счётчик. Убери монету из группы coins до того, как она будет посчитана. При сборе трёх монет должно быть выведено Coins left: 2, Coins left: 1, затем Coins left: 0.

Попробуйте сами

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()
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Сигналы и столкновения

Потренируйтесь самостоятельно: Песочница Godot