たくさんのトゲを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グループに属しています。
チャレンジ
中級すべてのトゲの列に触れると、スタート地点に戻るようにしましょう。
_ready()で、1行のconnectを、グループspikesを対象にするforループに置き換えます。- ループ内で、各ノードの
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プレイグラウンド