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

Сборщик монет: Осталось монет

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

Main должен знать, сколько монет осталось. Храни количество в переменной в начале main.gd. Посчитай объекты в группе один раз в начале, а затем вычитай единицу за каждую собранную монету:

var coins_left = 0

func _ready():
	coins_left = get_tree().get_nodes_in_group("coins").size()

Почему бы не считать объекты в группе в функции _on_coin_collected? Монета отправляет сигнал collected непосредственно перед тем, как освободиться. Она остается в своей группе до конца кадра, поэтому при подсчете она будет учтена.

Переменная меняется только тогда, когда ты ее меняешь.

challenge icon

Задание

Средне

В main.gd:

  1. Добавьте var coins_left = 0 в начало и присвойте ему размер группы coins в _ready().
  2. В _on_coin_collected() уменьшите значение на единицу и выведите Coins left: и число вместо Got a coin!.

При сборе первой монеты выводится Coins left: 5.

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

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

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

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

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