Kokia prasmė žaisti be taškų? Kai kurie gali apsieiti ir be jų, tačiau dauguma žaidimų, kuriuos sukursite, turės pasakyti žaidėjui, kaip jiems sekasi.

Rezultatai yra neatsiejama daugelio žaidimų dalis, nes jie parodo žaidėjų progresą ir pasiekimus.

„Python“ programoje „Arcade“ biblioteka siūlo paprastą ir efektyvų būdą valdyti balus žaidimuose. Efektyviai tvarkydami rezultatus galite padidinti naudotojų įsitraukimą ir suteikti įtraukiančią žaidimų patirtį.

Sukurkite paprastą žaidimą

Prieš pradėdami įsitikinkite, kad turite pip įdiegtas jūsų įrenginyje. Norėdami įdiegti arkadų biblioteką, naudokite šią komandą:

pip diegimo pasažas

Dabar sukurkite paprastą žaidimą naudodami Python Arcade biblioteką.

Šiame straipsnyje naudojamas kodas pateikiamas čia GitHub saugykla ir jūs galite nemokamai naudotis pagal MIT licenciją.

Šiame žaidime žaidėjas gali judėti į kairę ir dešinę rodyklių klavišais, o kliūtis yra ant tos pačios y ašies.

importuoti arkada

# Nustatykite lango matmenis
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

instagram viewer

klasėMano žaidimas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
super().__init__(plotis, aukštis)
self.player_x = plotis // 3
savarankiškai.balas = 0

defyra_key_press(savaime, raktas, modifikatoriai):
jeigu raktas == arcade.key. KAIRĖ:
self.player_x -= 10
elifas raktas == arcade.key. DEŠINĖJE:
self.player_x += 10

defatnaujinti(savaime, delta_laikas):
# Atnaujinkite žaidimo logiką čia
praeiti

defon_draw(savarankiškai):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. MĖLYNA)
arcade.draw_rectangle_filled(400, 50, 100, 50, arcade.color. RAUDONA)

defpagrindinis():
žaidimas = MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

jeigu __vardas__ == "__pagrindinis__":
pagrindinis ()

Balų stebėjimas ir skaičiavimas

Norėdami stebėti savo žaidimo rezultatą, galite sukurti mechanizmą, skirtą padidinti rezultatą, kai įvykdoma tam tikra sąlyga. Pavyzdžiui, balas didėja, kai žaidėjas juda jūsų žaidime ir sėkmingai paliečia kliūtį. Galite pakeisti atnaujinti būdas įtraukti balo skaičiavimo logiką:

klasėMano žaidimas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
super().__init__(plotis, aukštis)
self.player_x = plotis // 3
savarankiškai.balas = 0

defyra_key_press(savaime, raktas, modifikatoriai):
jeigu raktas == arcade.key. KAIRĖ:
self.player_x -= 10
elifas raktas == arcade.key. DEŠINĖJE:
self.player_x += 10

defatnaujinti(savaime, delta_laikas):
jeigu self.player_x > 330ir self.player_x < 470:
savarankiškai.balas += 1

Rodomas balas

Norėdami žaidėjui parodyti rezultatą, pakeiskite on_draw būdas įtraukti teksto atvaizdavimą:

klasėMano žaidimas(arkada. Langas):
# ...

defon_draw(savarankiškai):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. MĖLYNA)
arcade.draw_rectangle_filled(400, 300, 100, 50, arcade.color. RAUDONA)

rezultatas_tekstas = f" balas: {self.score}"
arcade.draw_text (score_text, 10, 10, arcade.color. BALTAS, 14)

Pridėję aukščiau pateiktą kodą, galite parodyti rezultatą apatiniame kairiajame žaidimo lango kampe.

Aukščiausio rezultato išsaugojimas

Norint suteikti žaidėjams pasiekimų ir konkurencijos jausmą, labai svarbu saugoti ir rodyti aukštą rezultatą. Tam galite naudoti paprastą failais pagrįstą metodą.

Naudoti load_high_score būdas nuskaityti aukštą rezultatą iš failo, vadinamo high_score.txt ir grąžinti. Po to galite išsaugoti naują rekordą faile naudodami išsaugoti_aukštą_balą metodas.

klasėMano žaidimas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
super().__init__(plotis, aukštis)
self.player_x = plotis // 3
savarankiškai.balas = 0
self.high_score = self.load_high_score()

defload_high_score(savarankiškai):
bandyti:
su atviras("aukštas_balas.txt", "r") kaip failas:
grąžinti int (file.read())
išskyrus „FileNotFoundError“:
grąžinti0

defišsaugoti_aukštą_balą(savarankiškai):
su atviras("aukštas_balas.txt", "w") kaip failas:
file.write (str (self.high_score))

defatnaujinti(savaime, delta_laikas):
# ...

jeigu self.score > self.high_score:
self.high_score = self.score
self.save_high_score()

Rodomas aukštas balas

Panašiai kaip rodomas dabartinis rezultatas, galite pridėti teksto atvaizdavimą, kad būtų rodomas aukštas rezultatas:

klasėMano žaidimas(arkada. Langas):
# ...

defon_draw(savarankiškai):
# ...

high_score_text = f"Aukštas rezultatas: {self.high_score}"
arcade.draw_text (high_score_text, 10, 30, arcade.color. BALTAS, 14)

Įtraukdami aukščiau nurodytą kodą į on_draw metodą, galite rodyti aukščiausią rezultatą, viršijantį dabartinį rezultatą.

Įskaitant papildomas funkcijas

Žaidimų balų valdymas dažnai apima papildomų funkcijų įtraukimą, kad žaidimas būtų patrauklesnis ir dinamiškesnis. Panagrinėkime keletą pavyzdžių, kaip žaidime kartu su balų valdymu galite įdiegti papildomų funkcijų.

Sustiprinimai

Papildymai yra specialūs daiktai, suteikiantys žaidėjams laikinų pranašumų arba papildomų taškų. Sukurti an activate_power_up metodas, kuris suaktyvina maitinimo įjungimą, nustatydamas power_up_active vėliavėlė į Tiesa.

Galite suplanuoti išjungti_maitinimą būdas paleisti po tam tikros trukmės (pvz., 10 sekundžių), naudojant arkada.tvarkaraštis funkcija. Aktyvaus įjungimo laikotarpiu galite naudoti taikyti_galios_padidinimo_efektus būdas įgyvendinti konkrečius žaidimo patobulinimus.

Štai įjungimo funkcijos įdiegimo žaidime pavyzdys.

klasėMano žaidimas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
super().__init__(plotis, aukštis)
self.player_x = plotis // 3
savarankiškai.balas = 0
self.power_up_active = Netiesa

defatnaujinti(savaime, delta_laikas):
jeigu self.power_up_active:
# Žaidimo metu taikykite įjungimo efektus
self.apply_power_up_effects()
savarankiškai.balas += 10

deftaikyti_galios_padidinimo_efektus(savarankiškai):
# Čia pridėkite specifinę įjungimo logiką
praeiti

defactivate_power_up(savarankiškai):
self.power_up_active = Tiesa
# Nustatykite įjungimo efekto laikmatį arba trukmę
arcade.schedule (self.deactivate_power_up, 10.0)

defišjungti_maitinimą(savaime, delta_laikas):
self.power_up_active = Netiesa

Kombinuota sistema

Kombinuota sistema apdovanoja žaidėjus už sėkmingus iš eilės veiksmus arba balų daugiklius. Sukurti an padidinti_kombinuotą_skaitiklį metodas, kuris padidina kombinacijų skaitiklį ir padidina balą pagal esamą kombinacijos lygį.

Galite skambinti Reset_combo_counter metodą ir iš naujo nustatykite kombinuotąjį skaitiklį į nulį, kai tik įvyksta nesėkmingas veiksmas. Štai paprastas kombinuotos sistemos įgyvendinimas:

klasėMano žaidimas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
super().__init__(plotis, aukštis)
self.player_x = plotis // 3
savarankiškai.balas = 0
self.combo_counter = 0

defatnaujinti(savaime, delta_laikas):
# Patikrinkite sėkmingus veiksmus
jeigu self.check_succesful_action():
self.increase_combo_counter()
Kitas:
self.reset_combo_counter()

defpadidinti_kombinuotą_skaitiklį(savarankiškai):
self.combo_counter += 1
self.score += self.combo_counter

defReset_combo_counter(savarankiškai):
self.combo_counter = 0

Įtraukdami papildomų funkcijų, pvz., įjungimo ir kombinuotų sistemų, galite suteikti žaidimui gilumo ir jaudulio, suteikiant žaidėjams papildomų paskatų pagerinti savo veiklą, strateguoti savo veiksmus ir pasiekti aukštesnių rezultatų balai.

Geriausia balų valdymo praktika

Kalbant apie rezultatų valdymą žaidimuose, vadovaudamiesi geriausios praktikos pavyzdžiais, galite sukurti malonesnę ir patrauklesnę žaidėjų patirtį. Štai keletas pagrindinių praktikų, į kurias reikia atsižvelgti:

Prasmingi balų skaičiavimo mechanizmai

Sukurkite taškų skaičiavimo mechanizmus, kurie atitiktų žaidimo tikslus ir suteiktų reikšmingą grįžtamąjį ryšį žaidėjams. Taškų sistema turėtų atspindėti žaidėjo pažangą, įgūdžius ir pasiekimus žaidime.

Apsvarstykite galimybę skirtingiems veiksmams ar įvykiams priskirti skirtingas taškų vertes, atsižvelgiant į jų sunkumą ar svarbą žaidimui.

Vaizdinis grįžtamasis ryšys

Pateikite žaidėjams vaizdinį grįžtamąjį ryšį, kai pasikeičia rezultatas. Tai galite pasiekti naudodami pranešimus ekrane, animaciją ar dalelių efektus. Vizualiniai ženklai sukuria pasiekimo jausmą ir sustiprina žaidėjo veiksmus, didindami jo įsitraukimą į žaidimą.

Garso efektai ir animacijos

Įtraukti garso efektai jūsų žaidime susiję su balų atnaujinimais, kad patirtis būtų įtraukesnė. Pavyzdžiui, paleiskite šventinį garso efektą arba parodykite konfeti pliūpsnį, kai grotuvas pasiekia reikšmingą etapą. Šie garso ir vaizdo elementai suteikia jaudulio ir sustiprina žaidėjų teigiamą grįžtamąjį ryšį.

Subalansavimo sunkumai ir balų keitimas

Užtikrinkite subalansuotą sunkumo ir balų skalės ryšį. Kai žaidėjai progresuoja žaidime arba susiduria su sudėtingesnėmis kliūtimis, atitinkamai pakoreguokite taškų skaičiavimo sistemą. Rezultato keitimas pagal žaidimo sudėtingumo kreivę padeda išlaikyti teisingą ir naudingą žaidėjų patirtį.

Laikydamiesi šios geriausios praktikos, galite efektyviai valdyti savo žaidimo rezultatus, suteikti žaidėjams reikšmingų atsiliepimų ir sukurti naudingą bei patrauklią patirtį.

Pagerinkite žaidimo įtraukimą naudodami rezultatų stebėjimą

Įdiegę žaidime rezultatų stebėjimą, galite žymiai padidinti žaidėjų įsitraukimą. Rezultatai suteikia pasiekimo jausmą, skatina pakartotinumą ir skatina žaidėjų konkurenciją.

Gerai parodykite rezultatus ir apdovanokite aukštus pasiekimus – motyvuosite žaidėjus siekti geresnių rezultatų ir tobulinti įgūdžius.