Menu
CoddyTech

Fuggi dal dungeon

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

Le scale nell'angolo più lontano sono l'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 insieme agli altri segnali. Anche dopo una vittoria, Invio avvia una nuova partita, perché il riavvio controlla solo se il gioco è in pausa.

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

challenge icon

Sfida

Facile

Fai fuggire l’eroe scendendo le scale.

  1. In main.gd, collega $Exit.body_entered a una funzione.
  2. Lì, mostra You escaped! in $HUD/Message e metti in pausa il gioco.

Premi «Gioca» e raggiungi le scale: appare You escaped! 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 _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