残ったコイン
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を呼び出す必要があります。
チャレンジ
中級カウントを修正しましょう。カウントする前に、コインをグループ coins から取り除きます。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プレイグラウンド