Menu
CoddyTech

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

El 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.

challenge icon

Desafío

Intermedio
  1. Cuando health llegue a 0, muestra Game Over en $HUD/Message y pausa el juego.
  2. 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()
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