Menu
CoddyTech

Много шипов, одна функция

Часть раздела Сигналы и столкновения путешествия по 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.

challenge icon

Задание

Средне

Сделай так, чтобы каждый ряд шипов отправлял тебя обратно.

  1. В _ready() замени единственную строку connect циклом for по группе spikes.
  2. Внутри цикла подключи сигнал 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