하트 세 개
Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 36개 중 33번째.
경비병에게 닿으면 하트가 하나 줄어들어야 합니다. 상단 표시줄의 하트 세 개는 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 플레이그라운드