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 = falseget_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.
Wyzwanie
ŚredniW pliku main.gd:
- Dodaj
var health = 3i połącz$Enemy.body_entered. - Przy każdym dotknięciu zmniejsz
healtho 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()
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Projekty
1Projekt: Breakout
Paletka w BreakoutUtrzymaj paletkę na ekranie4Projekt: Podziemny labirynt
Przejdź przez lochPodnieś kluczPoćwicz samodzielnie: Edytor online Godot