Kakšen je smisel igre brez zadetka? Nekatere lahko brez tega, vendar bo večina iger, ki jih boste ustvarili, igralcu morala povedati, kako dobro jim gre.
Rezultati so sestavni del mnogih iger, saj zagotavljajo merilo napredka in dosežkov igralcev.
V Pythonu knjižnica Arcade ponuja preprost in učinkovit način za upravljanje rezultatov v igrah. Z učinkovitim upravljanjem rezultatov lahko povečate angažiranost uporabnikov in zagotovite bolj poglobljeno igralno izkušnjo.
Ustvari preprosto igro
Preden začnete, se prepričajte, da imate pip nameščen v vaši napravi. Za namestitev arkadne knjižnice uporabite ta ukaz:
pip install arkada
Zdaj ustvarite preprosto igro z uporabo Pythonove knjižnice Arcade.
Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.
V tej igri se lahko igralec premika levo in desno s puščičnimi tipkami, medtem ko je ovira postavljena na isto os y.
uvoz arkada
# Nastavite dimenzije okna
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600razredMyGame(arkadne. okno):
def__v__(jaz, širina, višina):
super().__init__(širina, višina)
self.player_x = širina // 3
self.score = 0defna_pritisk_tipke(jaz, ključ, modifikatorji):
če ključ == arcade.key. LEVO:
self.player_x -= 10
elif ključ == arcade.key. PRAV:
self.player_x += 10defnadgradnja(sam, delta_time):
# Posodobite logiko igre tukaj
prehoddefon_draw(sebe):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. MODRA)
arcade.draw_rectangle_filled(400, 50, 100, 50, arcade.color. RDEČA)defglavni():
igra = MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
če __ime__ == "__glavni__":
glavni ()
Sledenje rezultatom in izračun
Če želite slediti rezultatu v svoji igri, lahko ustvarite mehanizem za povečanje rezultata, kadar koli je izpolnjen določen pogoj. Na primer, rezultat se poveča, kadar koli potez igralca v vaši igri in se uspešno dotakne ovire. Lahko spremenite nadgradnja metoda za vključitev logike izračuna rezultatov:
razredMyGame(arkadne. okno):
def__v__(jaz, širina, višina):
super().__init__(širina, višina)
self.player_x = širina // 3
self.score = 0defna_pritisk_tipke(jaz, ključ, modifikatorji):
če ključ == arcade.key. LEVO:
self.player_x -= 10
elif ključ == arcade.key. PRAV:
self.player_x += 10
defnadgradnja(sam, delta_time):
če self.player_x > 330in self.player_x < 470:
self.score += 1
Prikaz rezultata
Če želite prikazati rezultat igralcu, spremenite on_draw metoda za vključitev upodabljanja besedila:
razredMyGame(arkadne. okno):
# ...defon_draw(sebe):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. MODRA)
arcade.draw_rectangle_filled(400, 300, 100, 50, arcade.color. RDEČA)
rezultat_besedilo = f"Ocena: {self.score}"
arcade.draw_text (score_text, 10, 10, arcade.color. BELA, 14)
Če dodate zgornjo kodo, lahko prikažete rezultat v spodnjem levem kotu okna igre.
Shranjevanje visokega rezultata
Da bi igralcem zagotovili občutek dosežka in tekmovalnosti, je bistveno, da shranite in prikažete najboljši rezultat. Za to lahko uporabite preprost pristop, ki temelji na datotekah.
Uporabi load_high_score metoda za branje visokega rezultata iz datoteke, imenovane high_score.txt in ga vrniti. Po tem lahko shranite novo visoko oceno v datoteko z uporabo shrani_visoko oceno metoda.
razredMyGame(arkadne. okno):
def__v__(jaz, širina, višina):
super().__init__(širina, višina)
self.player_x = širina // 3
self.score = 0
self.high_score = self.load_high_score()defload_high_score(sebe):
poskusi:
z odprto("high_score.txt", "r") kot mapa:
vrnitev int (file.read())
razen FileNotFoundError:
vrnitev0defshrani_visoko oceno(sebe):
z odprto("high_score.txt", "w") kot mapa:
file.write (str (self.high_score))defnadgradnja(sam, delta_time):
# ...
če self.score > self.high_score:
self.high_score = self.score
self.save_high_score()
Prikaz visokega rezultata
Podobno kot pri prikazu trenutnega rezultata, lahko dodate upodobitev besedila za prikaz visokega rezultata:
razredMyGame(arkadne. okno):
# ...defon_draw(sebe):
# ...
high_score_text = f"Najboljši rezultat: {self.high_score}"
arcade.draw_text (high_score_text, 10, 30, arcade.color. BELA, 14)
Z vključitvijo zgornje kode v on_draw način, lahko prikažete visoko oceno tik nad trenutno oceno.
Vključno z dodatnimi funkcijami
Upravljanje rezultatov v igrah pogosto vključuje vključitev dodatnih funkcij, ki naredijo igranje bolj privlačno in dinamično. Raziščimo nekaj primerov, kako lahko poleg upravljanja rezultatov v svojo igro uvedete dodatne funkcije.
Okrepitve
Ojačanja so posebni predmeti, ki igralcem dajejo začasne prednosti ali bonus točke. Ustvarite activate_power_up način, ki sproži aktivacijo vklopa, nastavitev vklop_aktiven označite na True.
Lahko načrtujete deaktiviraj_power_up način za zagon po določenem času (npr. 10 sekund) z uporabo arkada.urnik funkcijo. Med aktivnim obdobjem vklopa lahko uporabljate apply_power_up_effects metoda za implementacijo posebnih izboljšav igranja.
Tukaj je primer implementacije funkcije vklopa v vaši igri.
razredMyGame(arkadne. okno):
def__v__(jaz, širina, višina):
super().__init__(širina, višina)
self.player_x = širina // 3
self.score = 0
self.power_up_active = Falsedefnadgradnja(sam, delta_time):
če self.power_up_active:
# Uporabite učinke za vklop med igranjem
self.apply_power_up_effects()
self.score += 10defapply_power_up_effects(sebe):
# Tukaj dodajte specifično logiko za vklop
prehoddefactivate_power_up(sebe):
self.power_up_active = Prav
# Nastavite časovnik ali trajanje učinka vklopa
arcade.schedule (self.deactivate_power_up, 10.0)
defdeaktiviraj_power_up(sam, delta_time):
self.power_up_active = False
Kombinirani sistem
Kombinirani sistem nagrajuje igralce za doseganje zaporednih uspešnih akcij ali množiteljev točk. Ustvarite povečati_kombo_števec metoda, ki poveča kombinirani števec in poveča rezultat glede na trenutno raven kombinacije.
Lahko pokličete reset_combo_counter metodo in ponastavite kombinirani števec nazaj na nič, kadar koli pride do neuspešnega dejanja. Tukaj je preprosta izvedba kombiniranega sistema:
razredMyGame(arkadne. okno):
def__v__(jaz, širina, višina):
super().__init__(širina, višina)
self.player_x = širina // 3
self.score = 0
self.combo_counter = 0defnadgradnja(sam, delta_time):
# Preverite uspešna dejanja
če self.check_successful_action():
self.increase_combo_counter()
drugače:
self.reset_combo_counter()defpovečati_kombo_števec(sebe):
self.combo_counter += 1
self.score += self.combo_counter
defreset_combo_counter(sebe):
self.combo_counter = 0
Z vključitvijo dodatnih funkcij, kot so okrepitve in kombinirani sistemi, lahko svoji igri dodate globino in razburjenje, zagotavlja igralcem dodatne spodbude za izboljšanje njihove uspešnosti, strategijo svojih dejanj in doseganje višjih ciljev rezultati.
Najboljše prakse za upravljanje rezultatov
Ko gre za upravljanje rezultatov v igrah, lahko upoštevanje najboljših praks pomaga ustvariti prijetnejšo in privlačnejšo izkušnjo za igralce. Tukaj je nekaj ključnih praks, ki jih je treba upoštevati:
Smiselni mehanizmi točkovanja
Oblikujte mehanizme točkovanja, ki so v skladu s cilji igre in igralcem zagotavljajo pomembne povratne informacije. Sistem točkovanja mora odražati igralčev napredek, spretnosti in dosežke v igri.
Razmislite o dodelitvi različnih vrednosti točk različnim dejanjem ali dogodkom glede na njihovo težavnost ali pomembnost za igranje.
Vizualne povratne informacije
Zagotovite vizualno povratno informacijo igralcem, ko se rezultat spremeni. To lahko dosežete z obvestili na zaslonu, animacijami ali učinki delcev. Vizualni znaki ustvarjajo občutek dosežka in krepijo igralčeva dejanja ter povečujejo njihovo angažiranost v igri.
Zvočni učinki in animacije
Vključite zvočne učinke v vaši igri povezane s posodobitvami rezultatov, da bo izkušnja bolj poglobljena. Na primer, predvajajte slavnostni zvočni učinek ali prikažite rafal konfetov, ko igralec doseže pomemben mejnik. Ti avdiovizualni elementi dodajo vznemirjenje in okrepijo pozitivno povratno zanko za igralce.
Težavnost uravnoteženja in lestvica rezultatov
Zagotovite uravnoteženo razmerje med težavnostjo in lestvico točk. Ko igralci napredujejo skozi igro ali naletijo na zahtevnejše ovire, ustrezno prilagodite sistem točkovanja. Skaliranje rezultata glede na krivuljo težavnosti igre pomaga vzdrževati pošteno in koristno izkušnjo za igralce.
Če se držite teh najboljših praks, lahko učinkovito upravljate rezultate svoje igre, igralcem zagotovite pomembne povratne informacije in ustvarite koristno in privlačno izkušnjo.
Izboljšajte sodelovanje pri igri s sledenjem rezultatom
Če v svojo igro uvedete sledenje rezultatom, lahko bistveno povečate angažiranost igralcev. Rezultati zagotavljajo občutek dosežka, spodbujajo možnost ponovnega igranja in spodbujajo tekmovalnost med igralci.
Prikazujte rezultate na vidnem mestu in nagrajujte visoke dosežke – igralce boste motivirali, da si prizadevajo za boljšo predstavo in izboljšajo svoje sposobnosti.