Drei Herzen
Teil des Abschnitts Projekte der Godot-Journey von Coddy. Lektion 30 von 33.
Eine Berührung mit dem Wächter sollte ein Herz kosten. Die drei Herzen in der oberen Leiste heißen Heart1, Heart2 und Heart3 und sind untergeordnete Elemente von $HUD/Hearts. Der Wächter ist ein Area2D, daher wird sein body_entered ausgelöst, wenn er den Helden berührt:
func _on_enemy_body_entered(body):
health -= 1
$HUD/Hearts.get_child(health).visible = falseget_child(i) gibt anhand seiner Position ein untergeordnetes Element eines Knotens zurück, wobei ab 0 gezählt wird. Nach dem ersten Treffer ist health 2, und get_child(2) ist Heart3. Die Herzen verschwinden von rechts.
body_entered wird bei jeder Berührung einmal ausgelöst. Ein Held, der im Weg des Wächters bleibt, verliert jedes Mal ein Herz, wenn dieser zurückkommt.
Aufgabe
MittelIn main.gd:
- Füge
var health = 3hinzu und verbinde$Enemy.body_entered. - Verringere bei jeder Berührung
healthum eins und blende dann$HUD/Hearts.get_child(health)aus.
Probier es selbst
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()
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Projekte
Übe selbstständig: Godot-Playground