Сборщик монет: Собрано
Часть раздела Сигналы и столкновения путешествия по Godot на Coddy. Урок 25 из 27.
main.gd хранит правила игры, например, сколько монет осталось. Main должен знать о каждой монете, которую ты подбираешь. Поэтому каждая монета отправляет сигнал, а Main слушает их все.
В coin.gd объяви signal collected и отправь сигнал непосредственно перед тем, как монета удалит себя:
if body.is_in_group("player"):
collected.emit()
queue_free()В main.gd подключи каждую монету из группы, как ты делал со шипами:
for coin in get_tree().get_nodes_in_group("coins"):
coin.collected.connect(_on_coin_collected)Это работает в _ready() узла Main, потому что Godot подготавливает дочерние узлы раньше родительского. К этому моменту все монеты уже добавлены в группу.
Задание
СреднеНа этот раз два скрипта:
coin.gd: объявиsignal collectedи отправь его передqueue_free().main.gd: в_ready()подключи сигналcollectedкаждой монеты к новой функции_on_coin_collected(), которая выводитGot a coin!.
Попробуйте сами
extends Node2D
func _ready():
pass
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Сигналы и столкновения
6Проект: Сборщик монет
Сборщик монет: ДвижениеСборщик монет: МонетыПотренируйтесь самостоятельно: Песочница Godot