残ったコイン
CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 17/27。
ここでは、コインを取ったときに残っているコインの数が表示されます。最初のコインではCoins left: 3と表示されますが、残っているのは2枚だけです。
queue_free()はフレームの終わりまで実行を待ちます。それまではコインはまだグループに属しているため、自分自身も数に含まれます。
まずremove_from_group()でコインをグループから取り除きます。これはすぐに反映されます。
func _on_body_entered(body):
remove_from_group("coins")
print("Coins left: ", get_tree().get_nodes_in_group("coins").size())
queue_free()行は上から下へ実行されるので、remove_from_groupは数える処理より前に置く必要があります。
チャレンジ
中級残りのコインの数を正しく表示しましょう。
_on_body_enteredで、print行の前にコインをグループcoinsから取り除きます。remove_from_group()を使います。
「プレイ」を押して3枚のコインを取ると、コンソールにCoins left: 2、Coins left: 1、その後Coins left: 0と表示されます。それから「確認」を押します。
自分で試してみよう
extends Area2D
func _ready():
add_to_group("coins")
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
print("Coins left: ", get_tree().get_nodes_in_group("coins").size())
queue_free()
シグナルと衝突のすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド