Menu
CoddyTech

Trzy serca

Część sekcji Projekty ścieżki Godot w Coddy. Lekcja 30 z 33.

Dotknięcie strażnika powinno kosztować jedno serce. Trzy serca na górnym pasku to Heart1, Heart2 i Heart3, elementy podrzędne węzła $HUD/Hearts. Strażnik jest obiektem Area2D, więc jego sygnał body_entered jest emitowany, gdy dotknie bohatera:

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

get_child(i) zwraca element podrzędny węzła na danej pozycji, licząc od 0. Po pierwszym trafieniu health wynosi 2, a get_child(2) to Heart3. Serca znikają od prawej strony.

Sygnał body_entered jest emitowany raz przy każdym dotknięciu. Bohater, który pozostaje na drodze strażnika, traci serce za każdym razem, gdy ten wraca.

challenge icon

Wyzwanie

Średni

W pliku main.gd:

  1. Dodaj var health = 3 i połącz $Enemy.body_entered.
  2. Przy każdym dotknięciu zmniejsz health o jeden, a następnie ukryj $HUD/Hearts.get_child(health).

Spróbuj swoich sił

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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Projekty

Poćwicz samodzielnie: Edytor online Godot