Wprowadź elementy, takie jak obrażenia gracza, mechanika leczenia i inne, wprowadzając system zdrowia do swoich gier.
Wdrożenie systemu zdrowia w grze może znacznie poprawić rozgrywkę i dodać dodatkową warstwę wyzwań i strategii. PyGame zapewnia solidny zestaw narzędzi i funkcji do włączania systemu opieki zdrowotnej, ułatwiając tworzenie interaktywnych doświadczeń.
Stwórz prostą grę
Zanim zaczniesz, upewnij się, że masz pip zainstalowany w twoim systemie. Użyj tego polecenia, aby zainstalować pygame biblioteka:
pip zainstaluj pygame
Następnie utwórz plik o nazwie prosta gra.py i zacznij od stworzenia prostej gry, w której gracz może poruszać się w lewo iw prawo.
Kod użyty w tym artykule jest dostępny w this Repozytorium GitHub i jest darmowy do użytku na licencji MIT.
W tej podstawowej pętli gry celem gracza będzie uniknięcie zderzenia z wrogiem.
import pygame
import losowy# Zainicjuj grę PyGame
pygame.init()# Skonfiguruj okno gry
szerokość_okna, wysokość_okna = 800, 600
okno = pygame.display.set_mode((szerokość_okna, wysokość_okna))
pygame.display.set_caption(„Demonstracja systemu zdrowotnego”)# Atrybuty gracza
szerokość_gracza, wysokość_gracza = 50, 50
gracz_x, gracz_y = szerokość_okna // 2, wysokość_okna - wysokość_gracza - 10
prędkość_gracza = 1# Atrybuty wroga
szerokość_wroga, wysokość_wroga = 50, 50
wróg_x, wróg_y = losowo.randint(0, szerokość_okna - szerokość_wroga), 0
prędkość_wroga = 0.3# Pętla gry
bieganie = PRAWDA
chwila działanie:
Do wydarzenie W pygame.event.get():
Jeśli event.type == pygame. ZREZYGNOWAĆ:
bieganie = FAŁSZ# Przesuń odtwarzacz w lewo lub w prawo
klucze = pygame.key.get_pressed()
Jeśli klucze [gra. K_LEFT] I gracz_x > 0:
gracz_x -= prędkość_gracza
Jeśli klucze [gra. K_PRAWO] I gracz_x < szerokość_okna - gracz_szerokość:
gracz_x += prędkość_gracza# Przesuń wroga w dół
wróg_y += prędkość_wroga# Narysuj obiekty gry
okno.wypełnij((0, 0, 0)) # Wyczyść ekran
pygame.draw.rect (okno, (255, 0, 0),
(gracz_x, gracz_y,
szerokość_gracza, wysokość_gracza))
pygame.draw.rect (okno, (0, 255, 0),
(wróg_x, wróg_y,
szerokość_wroga, wysokość_wroga)) # Narysuj wroga
pygame.display.update()
pygame.quit()
Uruchom kod, a zobaczysz okno z postacią gracza, którą możesz kontrolować za pomocą lewego i prawego klawisza strzałki.
Teraz, gdy masz już podstawową konfigurację gry, zdefiniuj zmienne i stałe związane ze zdrowiem gracza. Możesz użyć prostego systemu zdrowia, w którym możesz przedstawić zdrowie gracza za pomocą wartości liczbowej. Możesz także zdefiniować stałe dla maksymalnego zdrowia gracza oraz ilości obrażeń zadawanych przez wroga.
Ustaw początkowe zdrowie gracza na 100, maksymalne zdrowie na 100, a obrażenia wroga na 20. Wartości te można dostosować do konkretnych potrzeb gry.
# Zdrowie gracza
zdrowie_gracza = 100
maksymalne_zdrowie = 100
obrażenia_wroga = 20
Wdrażanie mechaniki obrażeń i leczenia
Aby wprowadzić mechanikę obrażeń i leczenia, musisz wykrywać kolizje między graczem a wrogiem i radzić sobie z odpowiednimi zmianami zdrowia. Możesz także zaimplementować mechanizm leczenia gracza, gdy zniknie z ekranu.
Sprawdź, czy jest kolizja między graczami i wroga, porównując ich prostokąty ograniczające. Jeśli zostanie wykryta kolizja, odejmij wartość obrażeń wroga od zdrowia gracza.
Dodatkowo, jeśli gracz przesunie się poza górną część ekranu (gracz_y < 0), dodaj 10 do ich zdrowia i upewnij się, że nie przekroczy maksymalnego zdrowia. Tworzy to mechanikę leczenia i resetuje pozycję gracza do dolnej części ekranu.
Utwórz nowy plik o nazwie damage-and-healing.py i dodaj kod z poniższymi aktualizacjami:
# Wewnątrz pętli gry, po zaktualizowaniu pozycji wroga
# Wykryj kolizję między graczem a wrogiem
Jeśli gracz_x < wróg_x + szerokość_wroga I \
gracz_x + szerokość_gracza > wróg_x I \
gracz_y < wróg_y + wróg_wysokość \
I gracz_y + wzrost_gracza > wróg_y:
zdrowie_gracza -= obrażenia_wroga
drukuj (zdrowie_gracza)
# Ulecz gracza, gdy zniknie z ekranu
Jeśli gracz_y < 0:
zdrowie_gracza += 10
drukuj (zdrowie_gracza)
Jeśli zdrowie_gracza > maksymalne_zdrowie:
zdrowie_gracza = maksymalne_zdrowie
gracz_y = wysokość_okna - wysokość_gracza - 10
Poniżej znajduje się wyjście:
Zarządzanie scenariuszami śmierci gracza i zakończenia gry
Aby poradzić sobie ze scenariuszami śmierci gracza i końca gry, musisz sprawdzić, czy zdrowie gracza spadnie do zera. Jeśli tak, wyświetl a Koniec gry wiadomość i ponownie uruchom grę.
Dodaj test, aby sprawdzić, czy zdrowie gracza spadnie poniżej zera lub będzie równe zeru. Jeśli ten warunek jest spełniony, wydrukuj Koniec gry i zresetować zdrowie i pozycję gracza.
Utwórz nowy plik o nazwie management-player-death.py i zmodyfikuj kod za pomocą poniższych aktualizacji:
# Po zaktualizowaniu pozycji gracza
# Sprawdź, czy zdrowie gracza osiągnie zero
Jeśli zdrowie_gracza <= 0:
wydrukować("Koniec gry")
zdrowie_gracza = maksymalne_zdrowie
gracz_x = szerokość_okna // 2
gracz_y = wysokość_okna - wysokość_gracza - 10
W tym dodatkowe funkcje
Aby jeszcze bardziej udoskonalić system opieki zdrowotnej, można włączyć dodatkowe funkcje. Poniżej znajduje się przykład:
Dopalacze
Zdefiniuj atrybuty wzmocnienia, takie jak jego wymiary i położenie. Ustaw także wartość zdrowia, którą gracz zyska podczas zderzenia ze wzmocnieniem.
W pętli gry wykrywaj kolizje między graczem a wzmocnieniem. Jeśli dojdzie do kolizji, zwiększ zdrowie gracza o wartość zdrowia wzmocnienia, upewniając się, że nie przekroczy maksymalnego zdrowia. Następnie losowo zmieniaj położenie wzmocnienia na ekranie. Na koniec narysuj obiekt zasilania na ekranie za pomocą niebieskiego prostokąta.
Utwórz nowy plik o nazwie power-up.py i dodaj kod z poniższymi aktualizacjami:
# Zdefiniuj atrybuty zasilania
power_up_width, power_up_height = 30, 30
power_up_x, power_up_y = 200,200
power_up_health_value = 50# Wewnątrz pętli gry, po zaktualizowaniu pozycji gracza
# Wykryj kolizję między graczem a power-upem
Jeśli player_x < power_up_x + power_up_width I\
player_x + player_width > power_up_x \
I gracz_y < power_up_y + power_up_height\
I player_y + player_height > power_up_y:
player_health += power_up_health_value
Jeśli zdrowie_gracza > maksymalne_zdrowie:
zdrowie_gracza = maksymalne_zdrowie
power_up_x, power_up_y = 200,200
# Narysuj obiekt power-up
pygame.draw.rect (okno, (0, 0, 255),
(zasilanie_x, zasilenie_y,
power_up_width,
power_up_height))
Poniżej znajduje się wyjście:
Dla każdej dodatkowej funkcji możesz zdefiniować niezbędne zmienne i stałe oraz zaimplementować odpowiednią mechanikę w pętli gry.
Najlepsze praktyki dla systemu opieki zdrowotnej
Wdrażając system opieki zdrowotnej w PyGame, pamiętaj o następujących najlepszych praktykach:
Implementuj systemy sterowane zdarzeniami
Zamiast ciągłego sprawdzania kolizji lub zmian kondycji w pętli gry, rozważ użycie systemów sterowanych zdarzeniami. PyGame zapewnia możliwości obsługi zdarzeń, umożliwiając uruchamianie działań związanych ze zdrowiem w oparciu o określone zdarzenia, takie jak zdarzenia kolizji lub zdarzenia odbioru mocy.
Zrównoważ wartości zdrowotne
Dostosuj wartości zdrowia, wartości obrażeń i szybkości leczenia w swojej grze, aby zapewnić zrównoważoną rozgrywkę. Testowanie gry i zbieranie informacji zwrotnych od graczy może pomóc w dopracowaniu tych wartości w celu uzyskania optymalnej rozgrywki.
Przekazać opinię
Upewnij się, że gracz otrzymuje jasne i znaczące informacje zwrotne dotyczące jego stanu zdrowia. Wyświetlaj pasek zdrowia w widocznym miejscu na ekranie, używaj wskazówek wizualnych, takich jak zmiana koloru lub animacje, aby wskazać uszkodzenie lub leczenie, oraz dostarczać wskazówek dźwiękowych lub wizualnych gdy zdrowie gracza osiągnie poziom krytyczny.
Postępując zgodnie z tymi najlepszymi praktykami, możesz stworzyć solidny i wciągający system opieki zdrowotnej, który przyczyni się do wciągającej rozgrywki.
Spraw, by gry były bardziej wciągające dzięki paskowi zdrowia
Wdrożenie systemu opieki zdrowotnej nie tylko zwiększa poziom wyzwań, ale także sprawia, że gry są bardziej wciągające dla graczy. Włączając wizualne reprezentacje zdrowia, takie jak paski zdrowia, gracze mogą łatwo ocenić swój aktualny stan i podejmować strategiczne decyzje. Co więcej, dodanie poziomów do gry może jeszcze bardziej ulepszyć rozgrywkę.