Trois cœurs
Fait partie de la section Projets du Journey Godot de Coddy. Leçon 33 sur 36.
Toucher le garde devrait faire perdre un cœur. Les trois cœurs dans la barre supérieure sont Heart1, Heart2 et Heart3, enfants de $HUD/Hearts. Le garde est une Area2D, donc son signal body_entered se déclenche lorsqu’il touche le héros :
func _on_enemy_body_entered(body):
health -= 1
$HUD/Hearts.get_child(health).visible = falseget_child(i) renvoie un nœud enfant selon sa position, en comptant à partir de 0. Après le premier coup, health vaut 2, et get_child(2) est Heart3. Les cœurs disparaissent de la droite.
body_entered se déclenche une fois par contact. Un héros qui reste sur le chemin du garde perd un cœur chaque fois que celui-ci revient.
Défi
MoyenFais en sorte que le garde fasse perdre un cœur au héros.
- Dans
main.gd, ajoutevar health = 3et connecte$Enemy.body_entered. - À chaque contact, diminue
healthde un, puis masque$HUD/Hearts.get_child(health).
Appuie sur « Jouer » et touche le garde : le cœur le plus à droite disparaît. Puis appuie sur « Vérifier ».
Essayez vous-même
extends Node2D
var has_key = false
func _ready():
$Key.body_entered.connect(_on_key_body_entered)
$DoorZone.body_entered.connect(_on_door_zone_body_entered)
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()
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