Tres corazones
Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 33 de 36.
Tocar al 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 el 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 de derecha a izquierda.
body_entered se activa una vez por cada contacto. Un héroe que permanece en el camino del guardia pierde un corazón cada vez que este vuelve.
Desafío
IntermedioHaz que el guardia le quite un corazón al héroe.
- En
main.gd, añadevar health = 3y conecta$Enemy.body_entered. - Cada vez que lo toque, reduce
healthen uno y después oculta$HUD/Hearts.get_child(health).
Pulsa «Jugar» y toca al guardia: desaparecerá el corazón de más a la derecha. Después, pulsa «Comprobar».
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()
Todas las lecciones de Proyectos
1Proyecto: Breakout
La pala de BreakoutMantén la pala en pantalla4Proyecto: Explorador de mazmorras
Recorre la mazmorraRecoge la llavePractica por tu cuenta: Playground de Godot