Jaký má smysl hra bez skóre? Některé se bez nich obejdou, ale většina her, které vytvoříte, bude muset hráči sdělit, jak dobře si vede.
Skóre jsou nedílnou součástí mnoha her, protože poskytují hráčům měřítko pokroku a úspěchů.
V Pythonu nabízí knihovna Arcade jednoduchý a efektivní způsob správy skóre ve hrách. Efektivní správou skóre můžete zvýšit zapojení uživatelů a poskytnout pohlcující herní zážitek.
Vytvořte jednoduchou hru
Než začnete, ujistěte se, že máte pip nainstalovaný na vašem zařízení. K instalaci arkádové knihovny použijte tento příkaz:
pip instalační arkáda
Nyní vytvořte jednoduchou hru pomocí knihovny Arcade v Pythonu.
Kód použitý v tomto článku je k dispozici v tomto úložiště GitHub a můžete jej používat zdarma pod licencí MIT.
V této hře se hráč může pohybovat doleva a doprava pomocí kláves se šipkami, zatímco překážka je umístěna na stejné ose y.
import pasáž
# Nastavte rozměry okna
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600třídaMyGame(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška)
self.player_x = šířka // 3
sebe.skóre = 0defon_key_press(vlastní, klíč, modifikátory):
-li klíč == arcade.key. VLEVO, ODJET:
self.player_x -= 10
elif klíč == arcade.key. ŽE JO:
self.player_x += 10defAktualizace(self, delta_time):
# Zde aktualizujte logiku hry
složitdefon_draw(já):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arkáda.barva. MODRÝ)
arcade.draw_rectangle_filled(400, 50, 100, 50, arkáda.barva. ČERVENÉ)defhlavní():
hra = MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
-li __jméno__ == "__hlavní__":
hlavní()
Sledování a výpočet skóre
Chcete-li ve své hře sledovat skóre, můžete vytvořit mechanismus pro zvýšení skóre, kdykoli je splněna určitá podmínka. Skóre se například zvyšuje vždy, když je se hráč pohybuje ve vaší hře a úspěšně se dotkne překážky. Můžete změnit Aktualizace metoda pro zahrnutí logiky výpočtu skóre:
třídaMyGame(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška)
self.player_x = šířka // 3
sebe.skóre = 0defon_key_press(vlastní, klíč, modifikátory):
-li klíč == arcade.key. VLEVO, ODJET:
self.player_x -= 10
elif klíč == arcade.key. ŽE JO:
self.player_x += 10
defAktualizace(self, delta_time):
-li self.player_x > 330a self.player_x < 470:
sebe.skóre += 1
Zobrazení skóre
Chcete-li zobrazit skóre hráči, upravte on_draw způsob, jak zahrnout vykreslení textu:
třídaMyGame(pasáž. Okno):
# ...defon_draw(já):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arkáda.barva. MODRÝ)
arcade.draw_rectangle_filled(400, 300, 100, 50, arkáda.barva. ČERVENÉ)
skóre_text = f" Skóre: {self.score}"
arcade.draw_text (text_skóre, 10, 10, arkáda.barva. BÍLÝ, 14)
Přidáním výše uvedeného kódu můžete zobrazit skóre v levém dolním rohu herního okna.
Uložení nejvyššího skóre
Chcete-li hráčům poskytnout pocit úspěchu a soutěžení, je nezbytné uložit a zobrazit nejvyšší skóre. K tomu můžete použít jednoduchý přístup založený na souborech.
Použijte load_high_score metoda pro čtení nejvyššího skóre ze souboru s názvem high_score.txt a vrátit to. Poté můžete uložit nové nejvyšší skóre do souboru pomocí save_high_score metoda.
třídaMyGame(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška)
self.player_x = šířka // 3
sebe.skóre = 0
self.high_score = self.load_high_score()defload_high_score(já):
Snaž se:
s OTEVŘENO("high_score.txt", "r") tak jako soubor:
vrátit se int (file.read())
až na FileNotFoundError:
vrátit se0defsave_high_score(já):
s OTEVŘENO("high_score.txt", "w") tak jako soubor:
file.write (str (self.high_score))defAktualizace(self, delta_time):
# ...
-li self.score > self.high_score:
self.high_score = self.score
self.save_high_score()
Zobrazení nejvyššího skóre
Podobně jako u zobrazení aktuálního skóre můžete přidat vykreslení textu pro zobrazení nejvyššího skóre:
třídaMyGame(pasáž. Okno):
# ...defon_draw(já):
# ...
high_score_text = f"Nejvyšší skóre: {self.high_score}"
arcade.draw_text (text_vysokého_skóre, 10, 30, arkáda.barva. BÍLÝ, 14)
Zahrnutím výše uvedeného kódu do on_draw můžete zobrazit nejvyšší skóre těsně nad aktuálním skóre.
Včetně dalších funkcí
Správa skóre ve hrách často zahrnuje začlenění dalších funkcí, aby byla hra poutavější a dynamičtější. Pojďme prozkoumat několik příkladů toho, jak můžete vedle správy skóre ve své hře zavést další funkce.
Power-Ups
Power-ups jsou speciální předměty, které hráčům poskytují dočasné výhody nebo bonusové body. Vytvořit activate_power_up metoda, která spouští aktivaci zapnutí, nastavení power_up_active příznak na hodnotu True.
Můžete si naplánovat deactivate_power_up způsob spuštění po určité době (např. 10 sekund) pomocí arkáda.rozvrh funkce. Během aktivní doby zapínání můžete použít apply_power_up_effects způsob implementace konkrétních vylepšení hry.
Zde je příklad implementace funkce power-up ve vaší hře.
třídaMyGame(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška)
self.player_x = šířka // 3
sebe.skóre = 0
self.power_up_active = NepravdivédefAktualizace(self, delta_time):
-li self.power_up_active:
# Během hry aplikujte efekty zapnutí
self.apply_power_up_effects()
sebe.skóre += 10defapply_power_up_effects(já):
# Zde přidejte logiku specifickou pro zapnutí
složitdefactivate_power_up(já):
self.power_up_active = Skutečný
# Nastavte časovač nebo dobu trvání efektu zapnutí
arcade.schedule (self.deactivate_power_up, 10.0)
defdeactivate_power_up(self, delta_time):
self.power_up_active = Nepravdivé
Kombinovaný systém
Kombinovaný systém odměňuje hráče za dosažení po sobě jdoucích úspěšných akcí nebo násobitelů skóre. Vytvořit zvýšit_kombo_počítadlo metoda, která zvyšuje čítač komba a zvyšuje skóre na základě aktuální úrovně komba.
Můžete zavolat na reset_combo_counter a vynulujte počítadlo komba zpět na nulu, kdykoli dojde k neúspěšné akci. Zde je jednoduchá implementace kombinovaného systému:
třídaMyGame(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška)
self.player_x = šířka // 3
sebe.skóre = 0
self.combo_counter = 0defAktualizace(self, delta_time):
# Zkontrolujte úspěšné akce
-li self.check_successful_action():
self.increase_combo_counter()
jiný:
self.reset_combo_counter()defzvýšit_kombo_počítadlo(já):
self.combo_counter += 1
self.score += self.combo_counter
defreset_combo_counter(já):
self.combo_counter = 0
Začleněním dalších funkcí, jako jsou power-ups a combo systémy, můžete do své hry přidat hloubku a vzrušení, poskytuje hráčům další pobídky ke zlepšení jejich výkonu, strategie jejich akcí a dosažení vyšší úrovně skóre.
Nejlepší postupy pro správu skóre
Pokud jde o správu skóre ve hrách, dodržování osvědčených postupů může pomoci vytvořit pro hráče zábavnější a poutavější zážitek. Zde je několik klíčových postupů, které je třeba zvážit:
Smysluplné skórovací mechanismy
Navrhněte mechanismy hodnocení, které jsou v souladu s cíli hry a poskytují hráčům smysluplnou zpětnou vazbu. Bodovací systém by měl odrážet hráčův pokrok, dovednosti a úspěchy ve hře.
Zvažte přiřazení různých bodových hodnot různým akcím nebo událostem na základě jejich obtížnosti nebo důležitosti pro hru.
Vizuální zpětná vazba
Poskytněte hráčům vizuální zpětnou vazbu, když se skóre změní. Můžete toho dosáhnout prostřednictvím oznámení na obrazovce, animací nebo částicových efektů. Vizuální podněty vytvářejí pocit úspěchu a posilují hráčovy akce, čímž zvyšují jeho zapojení do hry.
Zvukové efekty a animace
Začlenit zvukové efekty ve vaší hře související s aktualizacemi skóre, aby byl zážitek pohlcující. Zahrajte si například slavnostní zvukový efekt nebo zobrazte výbuch konfet, když hráč dosáhne významného milníku. Tyto audiovizuální prvky dodávají hráčům vzrušení a posilují pozitivní zpětnou vazbu.
Vyvažování obtížnosti a škálování skóre
Zajistěte vyvážený vztah mezi obtížností a stupnicí skóre. Jak hráči postupují hrou nebo narážejí na náročnější překážky, upravte podle toho systém bodování. Škálování skóre na základě křivky obtížnosti hry pomáhá udržovat spravedlivý a pro hráče obohacující zážitek.
Dodržováním těchto osvědčených postupů můžete efektivně spravovat skóre své hry, poskytovat hráčům smysluplnou zpětnou vazbu a vytvářet obohacující a poutavý zážitek.
Zlepšete zapojení do hry pomocí sledování skóre
Zavedením sledování skóre do vaší hry můžete výrazně zvýšit zapojení hráčů. Skóre poskytuje pocit úspěchu, podporuje znovuhratelnost a podporuje soutěživost mezi hráči.
Zobrazujte prominentní skóre a odměňujte vysoké úspěchy – budete motivovat hráče, aby usilovali o lepší výkon a zlepšili své dovednosti.