Menu
CoddyTech

残ったコイン

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は数える処理より前に置く必要があります。

challenge icon

チャレンジ

中級

残りのコインの数を正しく表示しましょう。

  1. _on_body_enteredで、print行の前にコインをグループcoinsから取り除きます。
  2. 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プレイグラウンド