鍵のかかったドア
CoddyのGodotジャーニー「プロジェクト」セクションの一部。レッスン 28/33。
Doorが階段への道をふさいでいます。これはStaticBody2Dなので、move_and_slideによってヒーローはそこで止まります。その手前にはDoorZoneがあります。これはドアより少し広いArea2Dなので、ヒーローはまずここに到達します。
ヒーローが鍵を持ってゾーンに入ると、ドアが開きます。
func _on_door_zone_body_entered(body):
if has_key:
$Door.queue_free()
$DoorZone.queue_free()ゾーンも削除してください。そうしないと、ヒーローが再びゾーンに入ったとき、$Doorはもう存在せず、ゲームはノードが見つかりませんというエラーで停止します。
queue_free()でドアを削除してください。hide()は描画を止めるだけです。ドアの衝突形状は残るため、ヒーローをふさいでしまいます。
チャレンジ
中級main.gdで$DoorZone.body_enteredを接続します。物体が進入し、has_keyがtrueの場合は、$Doorと$DoorZoneを削除します。
自分で試してみよう
extends Node2D
var has_key = false
func _ready():
$Key.body_entered.connect(_on_key_body_entered)
func _on_key_body_entered(body):
has_key = true
$Key.queue_free()
$HUD/KeyIcon.visible = true
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
プロジェクトのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド