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 = trueConnecte-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.
Défi
FacileFais descendre le héros par les escaliers.
- Dans
main.gd, connecte$Exit.body_enteredà une fonction. - Là, affiche
You escaped!dans$HUD/Messageet 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
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
1Projet : Casse-briques
La raquetteGarder la raquette à l’écran4Projet : Exploration de donjon
Parcourir le donjonRamasser la cléEntraînez-vous par vous-même : Playground Godot