木箱を壊す
CoddyのGodotジャーニー「ゲームの手触り」セクションの一部。レッスン 15/23。
木箱に歩いてぶつかると、木箱は消えます。代わりに、木片に砕けるようにしましょう。burst.tscnは、木片を飛び散らせる単発のCPUParticles2Dで、完了すると自分自身を削除します。
バーストを木箱の子ノードとして追加しないでください。queue_free()は子ノードもすべて含めてノードを削除するため、バーストも木箱と一緒に消えてしまいます。木箱の親ノードに、木箱と同じ位置で追加してください。
var burst = BURST.instantiate()
burst.position = position
get_parent().add_child(burst)
burst.emitting = true
queue_free()get_parent()は、ツリー内で木箱の上にあるノード、つまりレベルです。バーストは木箱の兄弟ノードなので、木箱が消えても残ります。
チャレンジ
中級木箱を破片にして飛び散らせましょう。
_on_body_enteredで、BURST.instantiate()を使って破片を作り、木箱のpositionに配置します。get_parent()に追加し、そのemittingをtrueに設定します。- それから木箱を削除します。
「プレイ」を押して木箱に向かって歩くと、木箱があった場所で破片が飛び散ります。その後、「確認」を押します。
自分で試してみよう
extends Area2D
const BURST = preload("res://burst.tscn")
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
queue_free()
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ゲームの手触りのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド