Menu
CoddyTech

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 = false

get_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.

challenge icon

Défi

Moyen

Dans main.gd :

  1. Ajoute var health = 3 et connecte $Enemy.body_entered.
  2. À chaque contact, diminue health de 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()
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