Menu
CoddyTech

Fuggi dal dungeon

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

Le scale nell'angolo più lontano sono la via d'uscita. Sono un'Area2D chiamata Exit. Quando l'eroe ci sale sopra, il giocatore vince:

func _on_exit_body_entered(body):
	$HUD/Message.text = "You Escaped!"
	get_tree().paused = true

Collegala in _ready con gli altri segnali. Anche dopo una vittoria, Invio avvia una nuova partita, perché il riavvio controlla solo che il gioco sia in pausa.

Gioca nel tuo dungeon. Poi modificalo: aggiungi una seconda guardia, sposta i muri oppure nascondi la chiave in un posto più difficile da trovare.

challenge icon

Sfida

Facile

In main.gd, collega $Exit.body_entered a una funzione che mostra You Escaped! in $HUD/Message e mette in pausa il gioco.

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 _process(delta):
	if get_tree().paused and Input.is_action_just_pressed("action"):
		get_tree().paused = false
		get_tree().reload_current_scene()

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()
	if health == 0:
		$HUD/Message.text = "Game Over"
		get_tree().paused = true
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Progetti

Esercitati da solo: Playground Godot