Jaki jest sens gry bez wyniku? Niektóre mogą się bez nich obejść, ale większość gier, które stworzysz, będzie wymagała informowania gracza, jak dobrze sobie radzi.

Wyniki są integralną częścią wielu gier, ponieważ stanowią miarę postępów i osiągnięć graczy.

W Pythonie biblioteka Arcade oferuje prosty i skuteczny sposób zarządzania wynikami w grach. Skutecznie zarządzając wynikami, możesz zwiększyć zaangażowanie użytkowników i zapewnić bardziej wciągające wrażenia z gry.

Stwórz prostą grę

Zanim zaczniesz, upewnij się, że masz pip zainstalowany na twoim urządzeniu. Użyj tego polecenia, aby zainstalować bibliotekę arcade:

zręcznościowa instalacja pip

Teraz utwórz prostą grę, korzystając z biblioteki Arcade Pythona.

Kod użyty w tym artykule jest dostępny w this Repozytorium GitHub i jest darmowy do użytku na licencji MIT.

W tej grze gracz może poruszać się w lewo iw prawo za pomocą klawiszy strzałek, podczas gdy przeszkoda jest umieszczona na tej samej osi y.

import arkada

# Ustaw wymiary okna
SZEROKOŚĆ_EKRANU = 800
WYSOKOŚĆ_EKRANU = 600

instagram viewer

klasaMoja gra(arkada. Okno):
pok__w tym__(ja, szerokość, wysokość):
super().__init__(szerokość, wysokość)
self.player_x = szerokość // 3
własny.wynik = 0

pokon_key_press(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY:
sam.gracz_x -= 10
Elif klucz == klucz.zręcznościowy. PRAWIDŁOWY:
sam.gracz_x += 10

pokaktualizacja(ja, delta_czas):
# Zaktualizuj logikę gry tutaj
przechodzić

pokon_draw(samego siebie):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arkadowy.kolor. NIEBIESKI)
arcade.draw_rectangle_filled(400, 50, 100, 50, arkadowy.kolor. CZERWONY)

pokgłówny():
gra = moja gra (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

Jeśli __nazwa__ == "__główny__":
główny()

Śledzenie i obliczanie wyników

Aby śledzić wynik w swojej grze, możesz stworzyć mechanizm zwiększania wyniku, gdy zostanie spełniony określony warunek. Na przykład, wynik wzrasta, gdy ruch gracza w twojej grze i skutecznie dotyka przeszkody. Możesz zmienić aktualizacja metoda obejmująca logikę obliczania wyniku:

klasaMoja gra(arkada. Okno):
pok__w tym__(ja, szerokość, wysokość):
super().__init__(szerokość, wysokość)
self.player_x = szerokość // 3
własny.wynik = 0

pokon_key_press(ja, klucz, modyfikatory):
Jeśli klucz == klucz.zręcznościowy. LEWY:
sam.gracz_x -= 10
Elif klucz == klucz.zręcznościowy. PRAWIDŁOWY:
sam.gracz_x += 10

pokaktualizacja(ja, delta_czas):
Jeśli sam.gracz_x > 330I sam.gracz_x < 470:
własny.wynik += 1

Wyświetlanie wyniku

Aby wyświetlić graczowi wynik, zmodyfikuj plik on_draw metoda dołączania renderowania tekstu:

klasaMoja gra(arkada. Okno):
# ...

pokon_draw(samego siebie):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arkadowy.kolor. NIEBIESKI)
arcade.draw_rectangle_filled(400, 300, 100, 50, arkadowy.kolor. CZERWONY)

wynik_tekst = f"Wynik: {samo.wynik}"
arcade.draw_text (tekst_punktacji, 10, 10, arkadowy.kolor. BIAŁY, 14)

Dodając powyższy kod, możesz wyświetlić wynik w lewym dolnym rogu okna gry.

Zapisywanie najlepszego wyniku

Aby zapewnić graczom poczucie osiągnięć i współzawodnictwa, konieczne jest przechowywanie i wyświetlanie najlepszych wyników. W tym celu można zastosować proste podejście oparte na plikach.

Użyj load_high_score metoda odczytywania najlepszego wyniku z pliku o nazwie wysoki_wynik.txt i zwrócić go. Następnie możesz zapisać nowy najlepszy wynik w pliku za pomocą zapisz_wysoki_wynik metoda.

klasaMoja gra(arkada. Okno):
pok__w tym__(ja, szerokość, wysokość):
super().__init__(szerokość, wysokość)
self.player_x = szerokość // 3
własny.wynik = 0
self.high_score = self.load_high_score()

pokload_high_score(samego siebie):
próbować:
z otwarty(„wysoki_wynik.txt”, "R") Jak plik:
powrót int (plik.odczyt())
z wyjątkiem Błąd pliku, którego nie znaleziono:
powrót0

pokzapisz_wysoki_wynik(samego siebie):
z otwarty(„wysoki_wynik.txt”, „w”) Jak plik:
plik.write (str (self.high_score))

pokaktualizacja(ja, delta_czas):
# ...

Jeśli własny.wynik > własny.wynik.wynik:
własny.wysoki_wynik = własny.wynik
self.save_high_score()

Wyświetlanie wysokiego wyniku

Podobnie jak w przypadku wyświetlania aktualnego wyniku, możesz dodać renderowanie tekstu, aby wyświetlić najlepszy wynik:

klasaMoja gra(arkada. Okno):
# ...

pokon_draw(samego siebie):
# ...

high_score_text = f"Wysoki wynik: {self.high_score}"
arcade.draw_text (tekst_najwyższych_wyników, 10, 30, arkadowy.kolor. BIAŁY, 14)

Włączając powyższy kod do pliku on_draw metody, możesz wyświetlić najlepszy wynik tuż nad bieżącym wynikiem.

W tym dodatkowe funkcje

Zarządzanie wynikami w grach często wiąże się z włączeniem dodatkowych funkcji, aby uczynić rozgrywkę bardziej wciągającą i dynamiczną. Przyjrzyjmy się kilku przykładom, w jaki sposób możesz wprowadzić dodatkowe funkcje oprócz zarządzania wynikami w swojej grze.

Dopalacze

Wzmocnienia to specjalne przedmioty, które zapewniają graczom tymczasowe korzyści lub punkty bonusowe. Stworzyć aktywuj_zasilanie sposób, który wyzwala aktywację załączenia, ustawiając power_up_active ustaw flagę na Prawda.

Możesz zaplanować dezaktywuj_zasilanie metoda do uruchomienia po określonym czasie (np. 10 sekundach) przy użyciu metody arkadowy.harmonogram funkcjonować. Podczas aktywnego okresu doładowania możesz użyć Apply_power_up_effects sposób implementacji określonych ulepszeń rozgrywki.

Oto przykład implementacji funkcji zwiększania mocy w grze.

klasaMoja gra(arkada. Okno):
pok__w tym__(ja, szerokość, wysokość):
super().__init__(szerokość, wysokość)
self.player_x = szerokość // 3
własny.wynik = 0
self.power_up_active = FAŁSZ

pokaktualizacja(ja, delta_czas):
Jeśli self.power_up_active:
# Zastosuj efekty ulepszeń podczas gry
self.apply_power_up_effects()
własny.wynik += 10

pokApply_power_up_effects(samego siebie):
# Dodaj tutaj logikę specyficzną dla zasilania
przechodzić

pokaktywuj_zasilanie(samego siebie):
self.power_up_active = PRAWDA
# Ustaw timer lub czas trwania efektu włączenia
arcade.schedule (self.deactivate_power_up, 10.0)

pokdezaktywuj_zasilanie(ja, delta_czas):
self.power_up_active = FAŁSZ

System Combo

System combo nagradza graczy za wykonywanie kolejnych udanych akcji lub mnożników punktów. Stworzyć zwiększ_licznik_kombinacji metoda, która zwiększa licznik kombinacji i zwiększa wynik w oparciu o aktualny poziom kombinacji.

Możesz zadzwonić do reset_licznik_kombinacji metodę i zresetuj licznik kombinacji z powrotem do zera za każdym razem, gdy wystąpi nieudana akcja. Oto prosta implementacja systemu combo:

klasaMoja gra(arkada. Okno):
pok__w tym__(ja, szerokość, wysokość):
super().__init__(szerokość, wysokość)
self.player_x = szerokość // 3
własny.wynik = 0
self.combo_counter = 0

pokaktualizacja(ja, delta_czas):
# Sprawdź pomyślne działania
Jeśli self.check_successful_action():
self.increase_combo_counter()
w przeciwnym razie:
self.reset_combo_counter()

pokzwiększ_licznik_kombinacji(samego siebie):
self.combo_counter += 1
self.score += self.combo_counter

pokreset_licznik_kombinacji(samego siebie):
self.combo_counter = 0

Włączając dodatkowe funkcje, takie jak ulepszenia i systemy kombinacji, możesz dodać głębi i emocji do swojej gry, dostarczanie graczom dodatkowych zachęt, aby poprawiali swoje wyniki, planowali swoje działania i osiągali wyższe wyniki wyniki.

Najlepsze praktyki zarządzania wynikami

Jeśli chodzi o zarządzanie wynikami w grach, przestrzeganie najlepszych praktyk może pomóc w stworzeniu przyjemniejszego i bardziej wciągającego doświadczenia dla graczy. Oto kilka kluczowych praktyk, które należy wziąć pod uwagę:

Znaczące mechanizmy punktacji

Projektuj mechanizmy punktacji, które są zgodne z celami gry i dostarczają graczom znaczących informacji zwrotnych. System punktacji powinien odzwierciedlać postępy, umiejętności i osiągnięcia gracza w grze.

Rozważ przypisanie różnych wartości punktowych różnym akcjom lub wydarzeniom na podstawie ich trudności lub znaczenia dla rozgrywki.

Wizualna informacja zwrotna

Zapewnij graczom wizualną informację zwrotną, gdy zmieni się wynik. Możesz to osiągnąć za pomocą powiadomień na ekranie, animacji lub efektów cząsteczkowych. Wizualne wskazówki tworzą poczucie spełnienia i wzmacniają działania gracza, zwiększając jego zaangażowanie w grę.

Efekty dźwiękowe i animacje

Włączać efekty dźwiękowe w Twojej grze związane z aktualizacjami wyników, aby doświadczenie było bardziej wciągające. Na przykład odtwórz uroczysty efekt dźwiękowy lub wyświetl wybuch konfetti, gdy gracz osiągnie ważny kamień milowy. Te elementy audiowizualne dodają emocji i wzmacniają pozytywne sprzężenie zwrotne dla graczy.

Równoważenie trudności i skalowanie wyników

Zapewnij zrównoważony związek między trudnością a skalowaniem wyników. W miarę postępów w grze lub napotykania trudniejszych przeszkód należy odpowiednio dostosowywać system punktacji. Skalowanie wyniku w oparciu o krzywą trudności gry pomaga zapewnić graczom sprawiedliwe i satysfakcjonujące wrażenia.

Stosując się do tych najlepszych praktyk, możesz skutecznie zarządzać wynikami swojej gry, dostarczać graczom wartościowych informacji zwrotnych oraz tworzyć satysfakcjonujące i wciągające doświadczenie.

Popraw zaangażowanie w grę dzięki śledzeniu wyników

Wdrażając śledzenie wyników w swojej grze, możesz znacznie zwiększyć zaangażowanie graczy. Wyniki zapewniają poczucie spełnienia, zachęcają do ponownego rozgrywania i sprzyjają rywalizacji między graczami.

Wyświetlaj wyniki w widocznym miejscu i nagradzaj wysokie osiągnięcia — zmotywujesz graczy do dążenia do lepszych wyników i doskonalenia swoich umiejętności.