Trois cœurs
Fait partie de la section Projets du Journey Godot de Coddy. Leçon 30 sur 33.
Toucher le garde devrait coûter un cœur. Les trois cœurs de la barre supérieure sont Heart1, Heart2 et Heart3, enfants de $HUD/Hearts. Le garde est un 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 l’enfant d’un nœud selon sa position, en commençant à 0. Après le premier coup, health vaut 2, et get_child(2) est Heart3. Les cœurs disparaissent en commençant par 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
MoyenDans main.gd :
- Ajoute
var health = 3et connecte$Enemy.body_entered. - À chaque contact, diminue
healthde un, puis masque$HUD/Hearts.get_child(health).
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()
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