Сборщик монет: Осталось монет
Часть раздела Сигналы и столкновения путешествия по 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 непосредственно перед тем, как освободиться. Она остается в своей группе до конца кадра, поэтому при подсчете она будет учтена.
Переменная меняется только тогда, когда ты ее меняешь.
Задание
СреднеВ main.gd:
- Добавьте
var coins_left = 0в начало и присвойте ему размер группыcoinsв_ready(). - В
_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!")
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Сигналы и столкновения
6Проект: Сборщик монет
Сборщик монет: ДвижениеСборщик монет: МонетыПотренируйтесь самостоятельно: Песочница Godot