Trzy serca
Część sekcji Projekty ścieżki Godot w Coddy. Lekcja 33 z 36.
Dotknięcie strażnika powinno kosztować jedno serce. Trzy serca na górnym pasku to Heart1, Heart2 i Heart3, dzieci 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 dziecko węzła o podanym miejscu, 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 strażnik wraca.
Wyzwanie
ŚredniSpraw, by strażnik odebrał bohaterowi jedno serce.
- W
main.gddodajvar health = 3i połącz$Enemy.body_entered. - Przy każdym dotknięciu zmniejsz
healtho jeden, a następnie ukryj$HUD/Hearts.get_child(health).
Naciśnij „Graj” i dotknij strażnika: zniknie serce po prawej stronie. Następnie naciśnij „Sprawdź”.
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()
Wszystkie lekcje w sekcji Projekty
1Projekt: Breakout
Paletka w BreakoutUtrzymaj paletkę na ekranie4Projekt: Podziemny labirynt
Przejdź przez lochPodnieś kluczPoćwicz samodzielnie: Edytor online Godot