Popraw swoje wrażenia z gry w Godot, wprowadzając system zdrowia i obrażeń.
System zdrowia i obrażeń pozwala graczom otrzymywać obrażenia i tracić punkty zdrowia, gdy napotykają przeszkody lub wrogów. Umożliwia im także przywracanie zdrowia za pomocą różnych środków, takich jak ulepszenia lub apteczki.
Godot, popularny silnik gier typu open source, zapewnia proste i elastyczne podejście do wdrażania takich systemów. Możesz łatwo stworzyć grę 2D z postacią gracza, wrogiem i paskiem zdrowia, aby wizualnie przedstawić stan zdrowia gracza.
Przygotowanie gry Godot
Najpierw skonfiguruj podstawową strukturę projektu w silnik gry Godota i utwórz niezbędne węzły.
Kod użyty w tym artykule jest dostępny w this Repozytorium GitHub i jest darmowy do użytku na licencji MIT.
Utwórz nową scenę dla postaci gracza. Dodać KinematicBody2D node, a wewnątrz niego dodaj a KolizjaKształt2D z prostokątnym kształtem reprezentującym hitbox gracza. Dołącz Krasnoludek węzeł do KinematicBody2D aby wyświetlić postać gracza.
# Player.gd
extends KinematicBody2Dconst SPEED = 200
var velocity = Vector2.ZERO
var health = 100func _physics_process(delta):
velocity.x = 0
velocity.y = 0if Input.is_action_pressed("ui_right"):
velocity.x += SPEED
elif Input.is_action_pressed("ui_left"):
velocity.x -= SPEEDif Input.is_action_pressed("ui_down"):
velocity.y += SPEED
elif Input.is_action_pressed("ui_up"):
velocity.y -= SPEED
move_and_collide(velocity * delta)
Teraz masz podstawową postać gracza w swoim projekcie Godot. Możesz przesuwać gracza za pomocą klawiszy strzałek, ale nie ma jeszcze systemu opieki zdrowotnej.
Projektowanie elementów interfejsu paska zdrowia
Teraz możesz dodać elementy interfejsu użytkownika, aby wizualnie przedstawić stan zdrowia gracza. Godot zapewnia wbudowaną kontrolę o nazwie TeksturaPostęp który dobrze się sprawdza w tym celu.
Utwórz nowy węzeł dla HUD (wyświetlacz przezierny). Dodać Warstwa płótna node, a wewnątrz niego dodaj a TeksturaPostęp węzeł. Dostosuj wygląd TeksturaPostęp node zgodnie ze stylem i motywem gry.
Aby wyświetlić pasek zdrowia za pomocą TeksturaPostęp w HUD musisz przypisać do niego teksturę. TeksturaPostęp wykorzystuje dwie tekstury: jedną dla tła, a drugą dla wypełnionej części (postęp).
W panelu inspektora zlokalizuj plik Tekstura Sekcja. Pod Tekstura, znajdziesz właściwości tzw Pod I Nad. Kliknij Obciążenie przycisk dla każdej właściwości i wybierz odpowiednie obrazy.
Dołącz skrypt do sceny HUD, aby zaktualizować pasek zdrowia na podstawie zdrowia gracza:
# HUD.gd
extends CanvasLayeronready var healthBar := $TextureProgress
func _ready():
update_health_bar()
func update_health_bar():
var hb = get_parent().get_node("KinematicBody2D")
healthBar.value = hb.health
Postępowanie ze zdrowiem gracza
Aby zmniejszyć zdrowie gracza, gdy przekroczy granicę ekranu, możesz dodać sprawdzanie warunkowe za pomocą instrukcji if. Jeśli gracz wyjdzie poza ekran, możesz zmniejszyć jego zdrowie. Oto jak możesz to osiągnąć:
# player.gd
extends KinematicBody2Dconst SPEED = 200
const DAMAGE_AMOUNT = 0.1var velocity = Vector2.ZERO
var health = 100# Screen boundaries
var screen_size
var margin = 20func _ready():
screen_size = get_viewport_rect().sizefunc _physics_process(delta):
#... (existing movement code)
move_and_collide(velocity * delta)var c1 = position.x < -margin
var c2 = position.x > screen_size.x + margin
var c3 = position.y < -margin
var c4 = position.y > screen_size.y + margin# Check if the player is outside the screen boundaries
if c1 or c2 or c3 or c4:
take_damage_on_screen_exit()
func take_damage_on_screen_exit():
health -= DAMAGE_AMOUNT
if health <= 0:
health = 0
# Game over logic here
update_health_ui()
Dodaj update_health_UI() funkcja w gracz.gd script, aby wywołać skrypt HUD i zaktualizować pasek zdrowia.
# Player.gd
extends KinematicBody2D#... (other code)
func update_health_ui():
var hud = get_parent().get_node("HUD")
if hud:
hud.update_health_bar()
Dzięki tym zmianom gracz będzie teraz otrzymywać obrażenia, gdy przekroczy granicę ekranu, a interfejs paska zdrowia zostanie odpowiednio zaktualizowany.
W tym dodatkowe funkcje
System zdrowia i obrażeń można rozbudować o różne dodatkowe funkcje, które uatrakcyjnią rozgrywkę. Niektóre pomysły obejmują:
Odbiory zdrowia
Zaimplementuj zbieranie zdrowia, które pozwala graczowi przywrócić zdrowie po zebraniu. Apteczki mogą być przedmiotami kolekcjonerskimi rozsianymi po świecie gry lub nagrodami za pokonanie wrogów.
Kiedy gracz wejdzie w interakcję z apteczką, jego zdrowie powinno wzrosnąć o określoną wartość, aż do wartości maksymalnej. Możesz użyć nowego skryptu dla elementu pobierania kondycji i obsłużyć logikę przywracania kolizji i kondycji.
Wzmocnienia Niezwyciężoności
Twórz ulepszenia, które zapewniają graczowi tymczasową niezwyciężoność na ograniczony czas. Kiedy gracz zbiera wzmocnienie niezwyciężoności, staje się odporny na obrażenia od wrogów lub inne zagrożenia.
Zaimplementuj licznik czasu, aby śledzić pozostały czas trwania stanu niezwyciężoności, a kiedy czas się skończy, gracz powróci do swojego wrażliwego stanu.
Różne rodzaje wrogów
Zaprojektuj różnych wrogów z różnymi wzorami ataków, wartościami obrażeń i zachowaniami. Każdy typ wroga może stanowić dla gracza wyjątkowe wyzwanie i wymagać różnych strategii do pokonania.
Na przykład niektórzy wrogowie mogą poruszać się szybciej, zadawać większe obrażenia lub mieć określone słabe punkty, które gracz może wykorzystać. Dodanie różnorodności do potyczek z wrogami sprawia, że rozgrywka jest wciągająca i zapobiega monotonności.
Regeneracja zdrowia
Zaimplementuj regenerację zdrowia w czasie, aby nagradzać graczy za unikanie obrażeń. Kiedy gracz nie otrzymuje obrażeń przez określony czas, jego zdrowie stopniowo regeneruje się do określonego progu.
Upewnij się jednak, że tempo regeneracji jest zrównoważone, aby uniknąć sytuacji, w których gracz może po prostu czekać, aż jego zdrowie w pełni się zregeneruje, bez żadnego wyzwania.
Informacje zwrotne audio i wizualne
Zapewnij atrakcyjne dźwiękowe i wizualne informacje zwrotne, gdy gracz odniesie obrażenia, przywróci zdrowie lub pokona wrogów.
Imponujące efekty dźwiękowe wolne od praw autorskich, drgania ekranu, efekty cząsteczkowe i wskazówki wizualne mogą zwiększyć zanurzenie gracza i sprawić, że system zdrowia i obrażeń będzie bardziej dynamiczny i wciągający.
Pamiętaj, aby wziąć pod uwagę ogólną równowagę dodatkowych funkcji, które wprowadzasz. Kontynuuj testowanie gry i zbieraj informacje zwrotne, aby upewnić się, że rozgrywka będzie trudna, przyjemna i utrzymana w dobrym tempie przez całą grę.
Zwiększanie zaangażowania gier Godot dzięki systemowi zdrowia i obrażeń
Integracja systemu zdrowia i obrażeń z grą Godot dodaje głębi i wyzwań, czyniąc rozgrywkę bardziej wciągającą dla graczy. Wprowadza element nagrody za ryzyko, ponieważ gracze muszą planować i skutecznie zarządzać swoim zdrowiem, aby robić postępy w grze.
Dodatkowo wizualna reprezentacja paska zdrowia zapewnia graczom ważne informacje zwrotne na temat ich aktualnego stanu, wzmacniając poczucie zanurzenia się w grze.