잠긴 문
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()는 그리기만 중단합니다. 문의 충돌 모양은 여전히 영웅을 막습니다.
챌린지
중급열쇠로 문을 여세요.
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 플레이그라운드