Sin corazones
Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 35 de 36.
Cuando desaparece el último corazón, se acaba el juego. Comprueba si el valor 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, así 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
IntermedioTermina el juego cuando se acaben los corazones.
- Cuando
healthllegue a 0, muestraGame Overen$HUD/Messagey pausa el juego. - Mientras esté en pausa, Enter (
action) quita la pausa y vuelve a cargar la escena.
Presiona «Jugar» y pierde tres corazones: aparece Game Over. Enter comienza de nuevo. Después, «Comprobar».
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()
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