Menu
CoddyTech

Senza più cuori

Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 35 di 36.

Quando sparisce l'ultimo cuore, la partita finisce. Verifica che il valore sia zero subito dopo aver nascosto il cuore:

if health == 0:
	$HUD/Message.text = "Game Over"
	get_tree().paused = true

L'eroe e la guardia sono Pausable, quindi si bloccano. Main è Always, quindi _process continua a essere eseguito. Avvia una nuova partita quando il giocatore preme Invio:

func _process(delta):
	if get_tree().paused and Input.is_action_just_pressed("action"):
		get_tree().paused = false
		get_tree().reload_current_scene()

Ricaricare azzera tutto: tre cuori, la chiave sul pavimento e la porta chiusa a chiave.

challenge icon

Sfida

Medio

Termina la partita quando finiscono i cuori.

  1. Quando health raggiunge 0, mostra Game Over in $HUD/Message e metti in pausa la partita.
  2. Mentre la partita è in pausa, Invio (action) la riattiva e ricarica la scena.

Premi «Gioca» e perdi tre cuori: appare Game Over. Premi Invio per ricominciare. Poi premi «Verifica».

Provalo tu

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()

Tutte le lezioni di Progetti

Esercitati da solo: Playground Godot