ノードを削除する
CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 15/27。
拾ったコインは隠れるのではなく、なくなる必要があります。そうすれば、二度と触れることはできません。queue_free()は、ノードとそのすべての子ノードをゲームから削除します。
func _on_body_entered(body):
queue_free()queue_free()を単独で呼び出すと、そのスクリプトが付いているノード、この場合はコインが削除されます。
名前に「queue」とあるのは、Godotがノードをすぐにではなく、現在のフレームの最後に解放するためです。それまでは、ほかのコードがそのノードを使うことがあります。これがなぜ重要なのかは、数レッスン後にわかります。
チャレンジ
簡単コインに触れたときに消えるようにしましょう。
_on_body_enteredの中のpassを置き換えます。queue_free()でコインを解放します。
「プレイ」を押してコインに触れてみましょう。コインが消えます。その後、「確認」を押します。
自分で試してみよう
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
シグナルと衝突のすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド