Menu
CoddyTech

S’échapper du donjon

Fait partie de la section Projets du Journey Godot de Coddy. Leçon 36 sur 36.

Les escaliers dans le coin le plus éloigné sont la sortie. Il s’agit d’un Area2D appelé Exit. Quand le héros marche dessus, le joueur gagne :

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

Connecte-le dans _ready avec les autres signaux. La touche Entrée démarre aussi une nouvelle partie après une victoire, puisque le redémarrage vérifie uniquement que le jeu est en pause.

Joue à ton donjon. Puis modifie-le : ajoute un deuxième garde, déplace les murs ou cache la clé dans un endroit plus difficile à trouver.

challenge icon

Défi

Facile

Fais descendre le héros par les escaliers.

  1. Dans main.gd, connecte $Exit.body_entered à une fonction.
  2. Là, affiche You escaped! dans $HUD/Message et mets le jeu en pause.

Appuie sur « Jouer » et atteins les escaliers : You escaped! s’affiche. Puis appuie sur « Vérifier ».

Essayez vous-même

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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Projets

Entraînez-vous par vous-même : Playground Godot