Расчистить путь
Часть раздела Сигналы и столкновения путешествия по Godot на Coddy. Урок 18 из 27.
Чтобы удалить все узлы одного типа, пройдись циклом по группе и удали каждый узел:
for crate in get_tree().get_nodes_in_group("crates"):
crate.queue_free()Нельзя удалить сам список. get_nodes_in_group("crates").queue_free() останавливает игру с ошибкой, потому что список — это не узел.
Три ящика преграждают путь направо. Все они входят в группу crates.
Задание
СреднеСделай так, чтобы переключатель удалял все ящики.
- В
_on_switch_body_enteredзамени строкуCrate1цикломforпо группеcrates. - Освобождай каждый ящик внутри цикла.
Нажми «Играть» и наступи на переключатель: все ящики исчезнут, и ты сможешь пройти сквозь это место. Затем нажми «Проверить».
Попробуйте сами
extends Node2D
func _ready():
$Switch.body_entered.connect(_on_switch_body_entered)
func _on_switch_body_entered(body):
$Crate1.queue_free()
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Сигналы и столкновения
Потренируйтесь самостоятельно: Песочница Godot