Сборщик монет: Осталось монет
Часть раздела Сигналы и столкновения путешествия по 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 считал оставшиеся монеты.
- В начале
main.gdдобавьvar coins_left = 0, а в_ready()присвой ему количество элементов в группеcoins. - В
_on_coin_collected()уменьши значение на единицу и выведи его вместоGot a coin!:print("Coins left: ", coins_left).
Нажми «Играть» и возьми монету: в консоли появится 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