Aký má zmysel hra bez skóre? Niektoré sa bez nich zaobídu, ale väčšina hier, ktoré vytvoríte, bude musieť hráčovi povedať, ako dobre sa im darí.
Skóre sú neoddeliteľnou súčasťou mnohých hier, pretože poskytujú meradlo pokroku a úspechov hráčov.
V Pythone ponúka knižnica Arcade jednoduchý a efektívny spôsob správy skóre v hrách. Efektívnym spravovaním skóre môžete zvýšiť zapojenie používateľov a poskytnúť pohlcujúcejší herný zážitok.
Vytvorte jednoduchú hru
Pred začatím sa uistite, že máte pip nainštalovaný na vašom zariadení. Na inštaláciu arkádovej knižnice použite tento príkaz:
arkáda na inštaláciu pipu
Teraz vytvorte jednoduchú hru pomocou knižnice Arcade v Pythone.
Kód použitý v tomto článku je dostupný v tomto úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.
V tejto hre sa hráč môže pohybovať doľava a doprava pomocou klávesov so šípkami, pričom prekážka je umiestnená na rovnakej osi y.
importovať pasáž
# Nastavte rozmery okna
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600triedaMyGame(arkáda. okno):
def__init__(ja, šírka, výška):
super().__init__(šírka, výška)
self.player_x = šírka // 3
seba.skóre = 0defon_key_press(ja, kľúč, modifikátory):
ak kľúč == arcade.key. VĽAVO:
self.player_x -= 10
elif kľúč == arcade.key. SPRÁVNY:
self.player_x += 10defaktualizovať(self, delta_time):
# Tu aktualizujte logiku hry
prejsťdefon_draw(ja):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. MODRÁ)
arcade.draw_rectangle_filled(400, 50, 100, 50, arcade.color. ČERVENÁ)defHlavná():
hra = MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
ak __meno__ == "__Hlavná__":
Hlavná()
Sledovanie a výpočet skóre
Ak chcete sledovať skóre vo svojej hre, môžete vytvoriť mechanizmus na zvýšenie skóre vždy, keď je splnená určitá podmienka. Napríklad, skóre sa zvyšuje vždy, keď je hráč sa pohybuje vo vašej hre a úspešne sa dotkne prekážky. Môžete zmeniť aktualizovať metóda na zahrnutie logiky výpočtu skóre:
triedaMyGame(arkáda. okno):
def__init__(ja, šírka, výška):
super().__init__(šírka, výška)
self.player_x = šírka // 3
seba.skóre = 0defon_key_press(ja, kľúč, modifikátory):
ak kľúč == arcade.key. VĽAVO:
self.player_x -= 10
elif kľúč == arcade.key. SPRÁVNY:
self.player_x += 10
defaktualizovať(self, delta_time):
ak self.player_x > 330a self.player_x < 470:
seba.skóre += 1
Zobrazenie skóre
Ak chcete hráčovi zobraziť skóre, upravte on_draw metóda na zahrnutie vykresľovania textu:
triedaMyGame(arkáda. okno):
# ...defon_draw(ja):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. MODRÁ)
arcade.draw_rectangle_filled(400, 300, 100, 50, arcade.color. ČERVENÁ)
skóre_text = f" Skóre: {self.score}"
arcade.draw_text (score_text, 10, 10, arcade.color. BIELY, 14)
Pridaním vyššie uvedeného kódu môžete zobraziť skóre v ľavom dolnom rohu herného okna.
Ukladanie najvyššieho skóre
Ak chcete hráčom poskytnúť pocit úspechu a súťaženia, je nevyhnutné uložiť a zobraziť najvyššie skóre. Na to môžete použiť jednoduchý prístup založený na súboroch.
Použi load_high_score metóda na čítanie najvyššieho skóre zo súboru s názvom high_score.txt a vrátiť ho. Potom môžete uložiť nové najvyššie skóre do súboru pomocou save_high_score metóda.
triedaMyGame(arkáda. okno):
def__init__(ja, šírka, výška):
super().__init__(šírka, výška)
self.player_x = šírka // 3
seba.skóre = 0
self.high_score = self.load_high_score()defload_high_score(ja):
skúste:
s OTVORENÉ("high_score.txt", "r") ako súbor:
vrátiť int (file.read())
okrem FileNotFoundError:
vrátiť0defsave_high_score(ja):
s OTVORENÉ("high_score.txt", "w") ako súbor:
file.write (str (self.high_score))defaktualizovať(self, delta_time):
# ...
ak self.score > self.high_score:
self.high_score = vlastné.skóre
self.save_high_score()
Zobrazuje sa najvyššie skóre
Podobne ako pri zobrazení aktuálneho skóre môžete pridať vykreslenie textu na zobrazenie najvyššieho skóre:
triedaMyGame(arkáda. okno):
# ...defon_draw(ja):
# ...
high_score_text = f"Najvyššie skóre: {self.high_score}"
arcade.draw_text (text_vysokého_skóre, 10, 30, arcade.color. BIELY, 14)
Zahrnutím vyššie uvedeného kódu do on_draw môžete zobraziť najvyššie skóre tesne nad aktuálnym skóre.
Vrátane ďalších funkcií
Správa skóre v hrách často zahŕňa začlenenie ďalších funkcií, vďaka ktorým bude hra pútavejšia a dynamickejšia. Pozrime sa na niekoľko príkladov, ako môžete vo svojej hre zaviesť popri správe skóre aj ďalšie funkcie.
Power-Ups
Power-ups sú špeciálne predmety, ktoré hráčom poskytujú dočasné výhody alebo bonusové body. Vytvorte activate_power_up metóda, ktorá spúšťa aktiváciu zapínania, nastavenie power_up_active príznak na hodnotu True.
Môžete si naplánovať deactivate_power_up spôsob spustenia po určitom čase (napr. 10 sekúnd) pomocou arkáda.rozvrh funkciu. Počas aktívneho obdobia zapnutia môžete použiť apply_power_up_effects spôsob implementácie konkrétnych vylepšení hry.
Tu je príklad implementácie funkcie zapnutia vo vašej hre.
triedaMyGame(arkáda. okno):
def__init__(ja, šírka, výška):
super().__init__(šírka, výška)
self.player_x = šírka // 3
seba.skóre = 0
self.power_up_active = Nepravdivédefaktualizovať(self, delta_time):
ak self.power_up_active:
# Počas hry používajte efekty zapnutia
self.apply_power_up_effects()
seba.skóre += 10defapply_power_up_effects(ja):
# Tu pridajte logiku špecifickú pre zapnutie
prejsťdefactivate_power_up(ja):
self.power_up_active = Pravda
# Nastavte časovač alebo trvanie efektu zapnutia
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 odmeňuje hráčov za dosiahnutie po sebe idúcich úspešných akcií alebo násobiteľov skóre. Vytvorte zväčšiť_kombo_počítadlo metóda, ktorá zvyšuje počítadlo komba a zvyšuje skóre na základe aktuálnej úrovne komba.
Môžete zavolať na reset_combo_counter metódu a vynulujte kombinované počítadlo späť na nulu vždy, keď dôjde k neúspešnej akcii. Tu je jednoduchá implementácia kombinovaného systému:
triedaMyGame(arkáda. okno):
def__init__(ja, šírka, výška):
super().__init__(šírka, výška)
self.player_x = šírka // 3
seba.skóre = 0
self.combo_counter = 0defaktualizovať(self, delta_time):
# Skontrolujte úspešné akcie
ak self.check_successful_action():
self.increase_combo_counter()
inak:
self.reset_combo_counter()defzväčšiť_kombo_počítadlo(ja):
self.combo_counter += 1
self.score += self.combo_counter
defreset_combo_counter(ja):
self.combo_counter = 0
Začlenením ďalších funkcií, ako sú vylepšenia a kombinované systémy, môžete do svojej hry pridať hĺbku a vzrušenie, poskytuje hráčom extra stimuly na zlepšenie ich výkonu, stratégii svojich akcií a dosahovanie vyšších výsledkov skóre.
Osvedčené postupy pre správu skóre
Pokiaľ ide o správu skóre v hrách, dodržiavanie osvedčených postupov môže pomôcť vytvoriť pre hráčov príjemnejšie a pútavejšie zážitky. Tu je niekoľko kľúčových postupov, ktoré treba zvážiť:
Zmysluplné skórovacie mechanizmy
Navrhnite mechanizmy hodnotenia, ktoré sú v súlade s cieľmi hry a poskytujú hráčom zmysluplnú spätnú väzbu. Bodovací systém by mal odrážať hráčov pokrok, zručnosti a úspechy v hre.
Zvážte priradenie rôznych bodových hodnôt rôznym akciám alebo udalostiam na základe ich náročnosti alebo dôležitosti pre hru.
Vizuálna spätná väzba
Poskytnite hráčom vizuálnu spätnú väzbu, keď sa skóre zmení. Môžete to dosiahnuť prostredníctvom upozornení na obrazovke, animácií alebo efektov častíc. Vizuálne podnety vytvárajú pocit úspechu a posilňujú hráčove akcie, čím zvyšujú jeho zapojenie do hry.
Zvukové efekty a animácie
Začleniť zvukové efekty vo vašej hre súvisiace s aktualizáciami skóre, aby bol zážitok pohlcujúci. Zahrajte si napríklad slávnostný zvukový efekt alebo zobrazte výbuch konfiet, keď hráč dosiahne významný míľnik. Tieto audiovizuálne prvky dodávajú hráčom vzrušenie a posilňujú pozitívnu spätnú väzbu.
Vyvažovanie obtiažnosti a mierka skóre
Zabezpečte vyvážený vzťah medzi obtiažnosťou a mierkou skóre. Keď hráči postupujú hrou alebo sa stretávajú s náročnejšími prekážkami, prispôsobte tomu systém bodovania. Škálovanie skóre na základe krivky obtiažnosti hry pomáha udržiavať spravodlivý a obohacujúci zážitok pre hráčov.
Dodržiavaním týchto osvedčených postupov môžete efektívne spravovať skóre svojej hry, poskytovať hráčom zmysluplnú spätnú väzbu a vytvárať obohacujúci a pútavý zážitok.
Zlepšite zapojenie hier pomocou sledovania skóre
Zavedením sledovania skóre do vašej hry môžete výrazne zvýšiť angažovanosť hráčov. Skóre poskytuje pocit úspechu, podporuje znovuhrateľnosť a podporuje súťaživosť medzi hráčmi.
Zobrazujte skóre na poprednom mieste a odmeňte vysoké úspechy – budete motivovať hráčov, aby sa snažili o lepší výkon a zlepšili svoje zručnosti.