Menu
CoddyTech
flag Pt iconPortuguêsdown icon

Três corações

Parte da seção Projetos do Journey de Godot da Coddy. Lição 30 de 33.

Tocar no guarda deve custar um coração. Os três corações na barra superior são Heart1, Heart2 e Heart3, filhos de $HUD/Hearts. O guarda é um Area2D, então seu body_entered é disparado quando toca no herói:

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

get_child(i) fornece o nó filho de um nó pela sua posição, contando a partir de 0. Depois do primeiro golpe, health é 2, e get_child(2) é Heart3. Os corações desaparecem da direita.

body_entered é disparado uma vez por toque. Um herói que permanece no caminho do guarda perde um coração cada vez que ele volta.

challenge icon

Desafio

Médio

Em main.gd:

  1. Adicione var health = 3 e conecte $Enemy.body_entered.
  2. A cada toque, diminua health em um e, em seguida, oculte $HUD/Hearts.get_child(health).

Experimente você mesmo

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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Projetos

Pratique por conta própria: Playground de Godot