Menu
CoddyTech

鍵のかかったドア

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()は描画を止めるだけです。ドアの衝突形状は残るため、ヒーローをふさいでしまいます。

challenge icon

チャレンジ

中級

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
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

プロジェクトのすべてのレッスン

自分で練習してみよう: Godotプレイグラウンド