Много шипов, одна функция
Часть раздела Сигналы и столкновения путешествия по Godot на Coddy. Урок 21 из 27.
На уровне может быть много шипов, которые делают одно и то же. Подключи их все к одной функции с помощью цикла по их группе:
for spike in get_tree().get_nodes_in_group("spikes"):
spike.body_entered.connect(_on_spike_body_entered)На каждой итерации цикла подключается следующий шип через body_entered. Какой бы ряд ты ни коснулся, выполняется одна и та же функция и получает твое тело.
Пятый ряд, добавленный в группу, будет работать без нового кода. Четыре ряда здесь входят в группу spikes.
Задание
СреднеСделай так, чтобы каждый ряд шипов отправлял тебя обратно.
- В
_ready()замени единственную строкуconnectцикломforпо группеspikes. - Внутри цикла подключи сигнал
body_enteredкаждого узла к_on_spike_body_entered.
Нажми «Играть» и коснись любых шипов: ты вернёшься в начало. Затем нажми «Проверить».
Попробуйте сами
extends Node2D
func _ready():
$Spikes1.body_entered.connect(_on_spike_body_entered)
func _on_spike_body_entered(body):
body.position = Vector2(80, 280)
Все уроки раздела Сигналы и столкновения
Потренируйтесь самостоятельно: Песочница Godot