Menu
CoddyTech

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

Часть раздела Сигналы и столкновения путешествия по 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

Задание

Средне

Исправь подсчёт оставшихся монет.

  1. В _on_body_entered удали монету из группы coins перед строкой print.
  2. Используй remove_from_group().

Нажми «Играть» и собери три монеты: в консоли отобразится 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()

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

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