Menu
CoddyTech

Tre cuori

Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 33 di 36.

Toccare la guardia dovrebbe costare un cuore. I tre cuori nella barra superiore sono Heart1, Heart2 e Heart3, figli di $HUD/Hearts. La guardia è un Area2D, quindi il suo body_entered si attiva quando tocca l’eroe:

func _on_enemy_body_entered(body):
	health -= 1
	$HUD/Hearts.get_child(health).visible = false

get_child(i) restituisce un nodo figlio in base alla sua posizione, contando da 0. Dopo il primo colpo, health è 2 e get_child(2) è Heart3. I cuori scompaiono da destra.

body_entered si attiva una volta per ogni contatto. Un eroe che rimane sul percorso della guardia perde un cuore ogni volta che questa torna.

challenge icon

Sfida

Medio

Fai in modo che la guardia tolga un cuore all'eroe.

  1. In main.gd, aggiungi var health = 3 e collega $Enemy.body_entered.
  2. A ogni contatto, diminuisci health di uno, poi nascondi $HUD/Hearts.get_child(health).

Premi «Gioca» e tocca la guardia: il cuore più a destra scompare. Poi premi «Verifica».

Provalo tu

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()

Tutte le lezioni di Progetti

Esercitati da solo: Playground Godot