Сборщик монет: Собрано
Часть раздела Сигналы и столкновения путешествия по 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 подготавливает дочерние узлы раньше родительского. К этому моменту все монеты уже вступили в группу.
Задание
СреднеПусть Main узнаёт о каждой собранной монете.
- В
coin.gdобъявиsignal collectedи отправь его передqueue_free(). - В
_ready()файлаmain.gdподключиcollectedкаждой монеты к новой функции_on_coin_collected(). - Сделай так, чтобы эта функция выводила
Got a coin!.
Нажми «Играть» и пройдись по монете: в консоли появится Got a coin!. Затем нажми «Проверить».
Попробуйте сами
extends Node2D
func _ready():
pass
Все уроки раздела Сигналы и столкновения
6Проект: Сборщик монет
Сборщик монет: ДвижениеСборщик монет: МонетыПотренируйтесь самостоятельно: Песочница Godot