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 = falseget_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.
Desafío
IntermedioEn main.gd:
- Añade
var health = 3y conecta$Enemy.body_entered. - Con cada toque, reduce
healthen 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()
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Proyectos
1Proyecto: Breakout
Paleta de BreakoutMantén la paleta en pantalla4Proyecto: Explorador de mazmorras
Recorre la mazmorraRecoge la llavePractica por tu cuenta: Playground de Godot