道を切り開く
CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 18/27。
ある種類のノードをすべて削除するには、グループをループして各ノードを解放します。
for crate in get_tree().get_nodes_in_group("crates"):
crate.queue_free()リスト自体を解放することはできません。get_nodes_in_group("crates").queue_free()は、リストはノードではないため、エラーが発生してゲームを停止させます。
右への道をふさぐ木箱が3つあります。これらはすべてcratesグループに属しています。
チャレンジ
中級スイッチですべての木箱を消します。
_on_switch_body_enteredで、Crate1の行をグループcratesを反復処理するforループに置き換えます。- ループ内で各木箱を解放します。
「プレイ」を押してスイッチを踏みます。すべての木箱が消え、通り抜けられるようになります。その後、「確認」を押します。
自分で試してみよう
extends Node2D
func _ready():
$Switch.body_entered.connect(_on_switch_body_entered)
func _on_switch_body_entered(body):
$Crate1.queue_free()
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
シグナルと衝突のすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド