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

instagram viewer

razredMyGame(arkadne. okno):
def__v__(jaz, širina, višina):
super().__init__(širina, višina)
self.player_x = širina // 3
self.score = 0

defna_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):
# Posodobite logiko igre tukaj
prehod

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

defna_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:
vrnitev0

defshrani_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 = False

defnadgradnja(sam, delta_time):
če self.power_up_active:
# Uporabite učinke za vklop med igranjem
self.apply_power_up_effects()
self.score += 10

defapply_power_up_effects(sebe):
# Tukaj dodajte specifično logiko za vklop
prehod

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

defnadgradnja(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.