Menu
CoddyTech

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

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

challenge icon

Aufgabe

Mittel

In main.gd:

  1. Füge var health = 3 hinzu und verbinde $Enemy.body_entered.
  2. Verringere bei jeder Berührung health um 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()
quiz iconTeste dich selbst

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