Menu
CoddyTech

S’échapper du donjon

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

Les escaliers dans le coin le plus éloigné sont la sortie. Ils forment une Area2D appelée Exit. Lorsque le héros marche dessus, le joueur gagne :

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

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

Jouez dans votre donjon. Puis modifiez-le : ajoutez un deuxième garde, déplacez les murs ou cachez la clé dans un endroit plus difficile à trouver.

challenge icon

Défi

Facile

Dans main.gd, connecte $Exit.body_entered à une fonction qui affiche You Escaped! dans $HUD/Message et met le jeu en pause.

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