Menu
CoddyTech

コイン集め:集めたコイン

CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 25/27。

main.gdには、残りのコインの数など、ゲームのルールが書かれています。Mainは、取ったコインについてすべて知る必要があります。そこで、各コインがシグナルを送信し、Mainはそれらすべてを受け取ります。

coin.gdでsignal collectedを宣言し、コインが自分自身を解放する直前にシグナルを送信します:

if body.is_in_group("player"):
	collected.emit()
	queue_free()

main.gdで、スパイクの場合と同じように、グループ内のすべてのコインを接続します:

for coin in get_tree().get_nodes_in_group("coins"):
	coin.collected.connect(_on_coin_collected)

Godotは親より先に子を準備するため、Mainの_ready()でこれを実行できます。この時点ですべてのコインがグループに加わっています。

challenge icon

チャレンジ

中級

回収されたコインをすべてMainに知らせましょう。

  1. coin.gdで、signal collectedを宣言し、queue_free()の前にそれを発行します。
  2. main.gdの_ready()で、すべてのコインのcollectedを新しい関数_on_coin_collected()に接続します。
  3. その関数でGot a coin!を出力します。

「プレイ」を押してコインの上を歩くと、コンソールにGot a coin!と表示されます。その後、「確認」を押します。

自分で試してみよう

extends Node2D

func _ready():
	pass

シグナルと衝突のすべてのレッスン

自分で練習してみよう: Godotプレイグラウンド