Menu
CoddyTech

잠긴 문

Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 36개 중 31번째.

Door가 계단으로 가는 길을 막고 있습니다. StaticBody2D이므로 move_and_slide가 영웅을 그 앞에서 멈춥니다. 그 앞에는 문보다 조금 더 넓은 Area2D인 DoorZone이 있어서 영웅이 먼저 도달합니다.

영웅이 열쇠를 가지고 구역 안으로 걸어 들어가면 문이 열립니다.

func _on_door_zone_body_entered(body):
	if has_key:
		$Door.queue_free()
		$DoorZone.queue_free()

구역도 제거하세요. 그렇지 않으면 영웅이 다시 그 안으로 걸어 들어가고, $Door는 더 이상 존재하지 않아 게임이 노드를 찾을 수 없음 오류와 함께 멈춥니다.

queue_free()로 문을 제거하세요. hide()는 그리기만 중단합니다. 문의 충돌 모양은 여전히 영웅을 막습니다.

challenge icon

챌린지

중급

열쇠로 문을 여세요.

  1. main.gd에서 $DoorZone.body_entered를 함수에 연결하세요.
  2. 물체가 들어오고 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 플레이그라운드