Três corações
Parte da seção Projetos do Journey de Godot da Coddy. Lição 33 de 36.
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 é uma Area2D, então seu body_entered é acionado quando toca no herói:
func _on_enemy_body_entered(body):
health -= 1
$HUD/Hearts.get_child(health).visible = falseget_child(i) fornece um nó filho pela sua posição, começando a contar do 0. Depois do primeiro golpe, health é 2, e get_child(2) é Heart3. Os corações desaparecem da direita para a esquerda.
body_entered é acionado uma vez por toque. Um herói que permanece no caminho do guarda perde um coração cada vez que ele volta.
Desafio
MédioFaça o guarda tirar um coração do herói.
- Em
main.gd, adicionevar health = 3e conecte$Enemy.body_entered. - A cada toque, diminua
healthem um e, em seguida, oculte$HUD/Hearts.get_child(health).
Pressione “Jogar” e toque no guarda: o coração mais à direita desaparece. Depois, pressione “Verificar”.
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()
Todas as lições de Projetos
1Projeto: Breakout
Raquete do BreakoutMantenha a raquete na tela4Projeto: Explorador de Masmorras
Percorra a masmorraPegue a chavePratique por conta própria: Playground de Godot