コイン集め:残りのコイン
CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 26/27。
Mainは残りのコインの数を知っておく必要があります。その数をmain.gdの先頭にある変数に保存します。開始時に一度だけグループ内のコインを数え、コインを1枚獲得するたびに1を引きます。
var coins_left = 0
func _ready():
coins_left = get_tree().get_nodes_in_group("coins").size()_on_coin_collectedでグループ内のコインを数えないのはなぜでしょうか?コインは自分自身を解放する直前にcollectedを送ります。フレームの終わりまではグループに残るため、数に含まれてしまいます。
変数は、変更したときにだけ値が変わります。
チャレンジ
中級Mainで残りのコインを数えましょう。
main.gdの先頭にvar coins_left = 0を追加し、_ready()でグループcoinsのサイズを設定します。_on_coin_collected()で数を1つ減らし、Got a coin!の代わりに表示します:print("Coins left: ", coins_left)。
「プレイ」を押してコインを1枚取ると、コンソールにCoins left: 5と表示されます。その後、「確認」を押しましょう。
自分で試してみよう
extends Node2D
func _ready():
for coin in get_tree().get_nodes_in_group("coins"):
coin.collected.connect(_on_coin_collected)
func _on_coin_collected():
print("Got a coin!")
シグナルと衝突のすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド