コイン集め:集めたコイン
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()でこれを実行できます。この時点ですべてのコインがグループに加わっています。
チャレンジ
中級回収されたコインをすべてMainに知らせましょう。
coin.gdで、signal collectedを宣言し、queue_free()の前にそれを発行します。main.gdの_ready()で、すべてのコインのcollectedを新しい関数_on_coin_collected()に接続します。- その関数で
Got a coin!を出力します。
「プレイ」を押してコインの上を歩くと、コンソールにGot a coin!と表示されます。その後、「確認」を押します。
自分で試してみよう
extends Node2D
func _ready():
pass
シグナルと衝突のすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド