Menu
CoddyTech

하트 세 개

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 = false

get_child(i)는 순서대로 0부터 세어 노드의 자식을 가져옵니다. 첫 번째로 맞은 뒤에는 health가 2이고, get_child(2)는 Heart3입니다. 하트는 오른쪽부터 사라집니다.

body_entered는 닿을 때마다 한 번 실행됩니다. 경비병의 이동 경로에 계속 머무르는 영웅은 경비병이 돌아올 때마다 하트를 하나씩 잃습니다.

challenge icon

챌린지

중급

main.gd에서:

  1. var health = 3을 추가하고 $Enemy.body_entered를 연결하세요.
  2. 접촉할 때마다 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()
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

프로젝트의 모든 레슨

직접 연습해 보세요: Godot 플레이그라운드