하트 세 개
Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 33개 중 30번째.
경비병에게 닿으면 하트 하나를 잃어야 합니다. 상단 바에 있는 하트 세 개는 Heart1, Heart2, Heart3이며, $HUD/Hearts의 자식입니다. 경비병은 Area2D이므로 영웅과 닿으면 body_entered가 실행됩니다:
func _on_enemy_body_entered(body):
health -= 1
$HUD/Hearts.get_child(health).visible = falseget_child(i)는 순서대로 0부터 세어 노드의 자식을 가져옵니다. 첫 번째로 맞은 뒤에는 health가 2이고, get_child(2)는 Heart3입니다. 하트는 오른쪽부터 사라집니다.
body_entered는 닿을 때마다 한 번 실행됩니다. 경비병의 이동 경로에 계속 머무르는 영웅은 경비병이 돌아올 때마다 하트를 하나씩 잃습니다.
챌린지
중급main.gd에서:
var health = 3을 추가하고$Enemy.body_entered를 연결하세요.- 접촉할 때마다
health를 1씩 줄인 다음$HUD/Hearts.get_child(health)를 숨기세요.
직접 해보기
extends Node2D
var has_key = false
func _ready():
$Key.body_entered.connect(_on_key_body_entered)
$DoorZone.body_entered.connect(_on_door_zone_body_entered)
func _on_key_body_entered(body):
has_key = true
$Key.queue_free()
$HUD/KeyIcon.visible = true
func _on_door_zone_body_entered(body):
if has_key:
$Door.queue_free()
$DoorZone.queue_free()
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
프로젝트의 모든 레슨
직접 연습해 보세요: Godot 플레이그라운드