Sin corazones
Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 32 de 33.
Cuando desaparece el último corazón, la partida termina. Comprueba si es cero justo después de ocultar el corazón:
if health == 0:
$HUD/Message.text = "Game Over"
get_tree().paused = trueEl héroe y el guardia son Pausable, así que se congelan. Main es Always, por lo que su _process sigue ejecutándose. Inicia una partida nueva cuando el jugador pulsa Enter:
func _process(delta):
if get_tree().paused and Input.is_action_just_pressed("action"):
get_tree().paused = false
get_tree().reload_current_scene()Al volver a cargar, todo se restablece: tres corazones, la llave en el suelo y la puerta cerrada.
Desafío
Intermedio- Cuando
healthllegue a 0, muestraGame Overen$HUD/Messagey pausa el juego. - Mientras el juego esté en pausa, pulsa Enter (
action) para reanudarlo y volver a cargar la escena.
Pruébalo tú mismo
extends Node2D
var has_key = false
var health = 3
func _ready():
$Key.body_entered.connect(_on_key_body_entered)
$DoorZone.body_entered.connect(_on_door_zone_body_entered)
$Enemy.body_entered.connect(_on_enemy_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()
func _on_enemy_body_entered(body):
health -= 1
$HUD/Hearts.get_child(health).visible = false
$Hero.flash()
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