Menu
CoddyTech

Tres corazones

Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 30 de 33.

El contacto con el guardia debería costar un corazón. Los tres corazones de la barra superior son Heart1, Heart2 y Heart3, hijos de $HUD/Hearts. El guardia es un Area2D, así que su body_entered se activa cuando toca al héroe:

func _on_enemy_body_entered(body):
	health -= 1
	$HUD/Hearts.get_child(health).visible = false

get_child(i) devuelve un nodo hijo según su posición, contando desde 0. Después del primer golpe, health es 2 y get_child(2) es Heart3. Los corazones desaparecen empezando por la derecha.

body_entered se activa una vez por contacto. Un héroe que se queda en el camino del guardia pierde un corazón cada vez que este vuelve.

challenge icon

Desafío

Intermedio

En main.gd:

  1. Añade var health = 3 y conecta $Enemy.body_entered.
  2. Con cada toque, reduce health en uno y después oculta $HUD/Hearts.get_child(health).

Pruébalo tú mismo

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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Proyectos

Practica por tu cuenta: Playground de Godot