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 = trueConnectez-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.
Défi
FacileDans 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
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 : Breakout
Raquette de BreakoutGarder la raquette à l’écran4Projet : Exploration de donjon
Parcourir le donjonRamasser la cléEntraînez-vous par vous-même : Playground Godot