Menu
CoddyTech

たくさんのトゲを1つの関数で

CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 21/27。

1つのレベルに同じ動作をするスパイクをたくさん配置できます。グループ内のスパイクをループで処理し、すべてを1つの関数に接続しましょう。

for spike in get_tree().get_nodes_in_group("spikes"):
	spike.body_entered.connect(_on_spike_body_entered)

ループが1回実行されるたびに、次のスパイクのbody_enteredが接続されます。どの列に触れても同じ関数が実行され、あなたの体を受け取ります。

グループに5列目を追加しても、新しいコードは必要ありません。ここにある4列はspikesグループに属しています。

challenge icon

チャレンジ

中級

すべてのトゲの列に触れると、スタート地点に戻るようにしましょう。

  1. _ready()で、1行のconnectを、グループspikesを対象にするforループに置き換えます。
  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プレイグラウンド