コイン集め:残りのコイン
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.gdでは:
- 先頭に
var coins_left = 0を追加し、_ready()でグループcoinsのサイズを代入します。 _on_coin_collected()では、1つ減らし、Got a coin!の代わりにCoins left:と数値を出力します。
最初のコインを取得すると、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プレイグラウンド