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 = 600

triedaMyGame(arkáda. okno):

instagram viewer

def__init__(ja, šírka, výška):
super().__init__(šírka, výška)
self.player_x = šírka // 3
seba.skóre = 0

defon_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):
# 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 = 0

defon_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ť0

defsave_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 += 10

defapply_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 = 0

defaktualizovať(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.