Mis mõte on mängul ilma punktita? Mõned saavad ilma hakkama, kuid enamik teie loodavaid mänge peavad mängijale ütlema, kui hästi neil läheb.

Skoorid on paljude mängude lahutamatu osa, kuna need annavad mängijate edusammude ja saavutuste mõõtmise.

Pythonis pakub Arcade'i teek lihtsat ja tõhusat viisi mängude skooride haldamiseks. Tulemusi tõhusalt haldades saate suurendada kasutajate seotust ja pakkuda kaasahaaravamat mängukogemust.

Looge lihtne mäng

Enne alustamist veenduge, et teil on pip teie seadmesse installitud. Kasutage seda käsku arkaadteegi installimiseks:

pip install arkaad

Nüüd looge Pythoni arcade raamatukogu abil lihtne mäng.

Selles artiklis kasutatud kood on saadaval selles GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.

Selles mängus saab mängija liikuda nooleklahvide abil vasakule ja paremale, samal ajal kui takistus asetatakse samale y-teljele.

importida arkaad

# Seadistage akna mõõtmed
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

klassMinu Mäng(arkaad. aken):
def__selles__(ise, laius, kõrgus):


super().__init__(laius, kõrgus)
self.player_x = laius // 3
ise.skoor = 0

defon_key_press(ise, võti, muutjad):
kui võti == arcade.key. VASAKULE:
self.player_x -= 10
elif võti == arcade.key. PAREMALE:
self.player_x += 10

defvärskendada(ise, delta_aeg):
# Värskendage siin mänguloogikat
üle andma

defon_draw(ise):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. SININE)
arcade.draw_rectangle_filled(400, 50, 100, 50, arcade.color. PUNANE)

defpeamine():
mäng = MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

kui __nimi__ == "__main__":
peamine ()

Tulemuste jälgimine ja arvutamine

Mängu skoori jälgimiseks saate luua mehhanismi skoori suurendamiseks, kui konkreetne tingimus on täidetud. Näiteks skoor suureneb alati, kui mängija liigub teie mängus ja puudutab edukalt takistust. Saate muuta värskendada meetod skoori arvutamise loogika lisamiseks:

klassMinu Mäng(arkaad. aken):
def__selles__(ise, laius, kõrgus):
super().__init__(laius, kõrgus)
self.player_x = laius // 3
ise.skoor = 0

defon_key_press(ise, võti, muutjad):
kui võti == arcade.key. VASAKULE:
self.player_x -= 10
elif võti == arcade.key. PAREMALE:
self.player_x += 10

defvärskendada(ise, delta_aeg):
kui self.player_x > 330ja ise.mängija_x < 470:
ise.skoor += 1

Hinde kuvamine

Mängijale skoori kuvamiseks muutke nuppu on_draw meetod teksti renderdamise kaasamiseks:

klassMinu Mäng(arkaad. aken):
# ...

defon_draw(ise):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. SININE)
arcade.draw_rectangle_filled(400, 300, 100, 50, arcade.color. PUNANE)

hinde_tekst = f"Skoor: {self.score}"
arcade.draw_text (score_text, 10, 10, arcade.color. VALGE, 14)

Ülaltoodud koodi lisamisel saate mänguakna vasakus alanurgas kuvada skoori.

Kõrgeima skoori salvestamine

Mängijatele saavutustunde ja konkurentsi pakkumiseks on oluline rekord salvestada ja kuvada. Selleks saate kasutada lihtsat failipõhist lähenemist.

Kasuta load_high_score meetod rekordi lugemiseks failist nimega high_score.txt ja tagastage see. Pärast seda saate uue rekordi faili salvestada, kasutades salvesta_kõrge_skoor meetod.

klassMinu Mäng(arkaad. aken):
def__selles__(ise, laius, kõrgus):
super().__init__(laius, kõrgus)
self.player_x = laius // 3
ise.skoor = 0
self.high_score = self.load_high_score()

defload_high_score(ise):
proovige:
koos avatud ("high_score.txt", "r") nagu fail:
tagasi int (file.read())
välja arvatud FileNotFoundError:
tagasi0

defsalvesta_kõrge_skoor(ise):
koos avatud ("high_score.txt", "w") nagu fail:
file.write (str (self.high_score))

defvärskendada(ise, delta_aeg):
# ...

kui self.score > self.high_score:
self.high_score = ise.skoor
self.save_high_score()

Kõrge skoori kuvamine

Sarnaselt praeguse skoori kuvamisele saate rekordi kuvamiseks lisada teksti renderduse:

klassMinu Mäng(arkaad. aken):
# ...

defon_draw(ise):
# ...

high_score_text = f"Skoor: {self.high_score}"
arcade.draw_text (high_score_text, 10, 30, arcade.color. VALGE, 14)

Lisades ülaltoodud koodi on_draw meetodil, saate kuvada rekordi hetke skoori kohal.

Kaasa arvatud lisafunktsioonid

Mängude skooride haldamine hõlmab sageli lisafunktsioonide lisamist, et muuta mäng kaasahaaravamaks ja dünaamilisemaks. Uurime mõnda näidet selle kohta, kuidas saate oma mängus lisaks skoorihaldusele lisada lisafunktsioone.

Võimsused

Võimsused on spetsiaalsed esemed, mis annavad mängijatele ajutisi eeliseid või boonuspunkte. Loo an activate_power_up meetod, mis käivitab toite aktiveerimise, seadistades power_up_active lipp Tõene.

Saate ajastada deaktiveeri_toite_üles meetod teatud aja (nt 10 sekundi) järel käitamiseks, kasutades arkaad.graafik funktsiooni. Sisselülitamise aktiivse perioodi jooksul saate kasutada power_up_effects rakendamine meetod konkreetsete mängutäiustuste rakendamiseks.

Siin on näide toitefunktsiooni rakendamisest teie mängus.

klassMinu Mäng(arkaad. aken):
def__selles__(ise, laius, kõrgus):
super().__init__(laius, kõrgus)
self.player_x = laius // 3
ise.skoor = 0
self.power_up_active = Vale

defvärskendada(ise, delta_aeg):
kui self.power_up_active:
# Rakendage mängu ajal võimsusefekte
self.apply_power_up_effects()
ise.skoor += 10

defpower_up_effects rakendamine(ise):
# Lisage siia sisselülitamise spetsiifiline loogika
üle andma

defactivate_power_up(ise):
self.power_up_active = Tõsi
# Määrake sisselülitusefekti taimer või kestus
arcade.schedule (self.deactivate_power_up, 10.0)

defdeaktiveeri_toite_üles(ise, delta_aeg):
self.power_up_active = Vale

Kombineeritud süsteem

Kombosüsteem premeerib mängijaid järjestikuste edukate toimingute või skoori kordajate sooritamise eest. Loo an suurenda_kombinatsiooniloendurit meetod, mis suurendab kombineeritud loendurit ja suurendab skoori praeguse kombineeritud taseme alusel.

Võite helistada reset_combo_counter meetodit ja lähtestage kombineeritud loendur iga kord, kui ebaõnnestub toiming, nulli. Siin on kombineeritud süsteemi lihtne rakendus:

klassMinu Mäng(arkaad. aken):
def__selles__(ise, laius, kõrgus):
super().__init__(laius, kõrgus)
self.player_x = laius // 3
ise.skoor = 0
self.combo_counter = 0

defvärskendada(ise, delta_aeg):
# Kontrollige edukaid toiminguid
kui self.check_succesful_action():
self.increase_combo_counter()
muidu:
self.reset_combo_counter()

defsuurenda_kombinatsiooniloendurit(ise):
self.combo_counter += 1
self.score += self.combo_counter

defreset_combo_counter(ise):
self.combo_counter = 0

Lisades lisafunktsioone, nagu lisafunktsioonid ja kombineeritud süsteemid, saate oma mängule sügavust ja põnevust lisada, pakkudes mängijatele täiendavaid stiimuleid oma soorituse parandamiseks, tegevuste strateegiaks ja kõrgemaks saavutamiseks hinded.

Tulemuste haldamise parimad tavad

Mis puutub mänguskooride haldamisse, siis parimate tavade järgimine võib aidata luua mängijatele nauditavama ja kaasahaaravama kogemuse. Siin on mõned peamised tavad, mida kaaluda:

Tähenduslikud hindamismehhanismid

Kujundage punktimehhanismid, mis ühtivad mängu eesmärkidega ja annavad mängijatele sisukat tagasisidet. Punktisüsteem peaks kajastama mängija edusamme, oskusi ja saavutusi mängus.

Kaaluge erinevatele tegevustele või sündmustele erinevate punktiväärtuste määramist, lähtudes nende raskusest või tähtsusest mängus.

Visuaalne tagasiside

Andke mängijatele visuaalset tagasisidet, kui skoori muutub. Seda saate saavutada ekraanil kuvatavate märguannete, animatsioonide või osakeste efektide abil. Visuaalsed vihjed loovad saavutustunde ja tugevdavad mängija tegevust, suurendades nende seotust mänguga.

Heliefektid ja animatsioonid

Kaasata heliefektid teie mängus seotud skoori värskendustega, et muuta kogemus kaasahaaravamaks. Näiteks mängige pidulikku heliefekti või kuvage konfetti, kui mängija jõuab olulise verstapostini. Need audiovisuaalsed elemendid lisavad põnevust ja tugevdavad mängijate positiivset tagasisidet.

Tasakaalustamise raskused ja skoori skaleerimine

Tagada tasakaalustatud suhe raskusastme ja skoori skaleerimise vahel. Mängu edenedes või keerukamate takistustega kokku puutudes kohandage punktisüsteemi vastavalt. Mängu raskuskõvera alusel skoori skaleerimine aitab säilitada mängijate jaoks õiglase ja rahuldust pakkuva kogemuse.

Neid parimaid tavasid järgides saate tõhusalt hallata oma mängu tulemusi, anda mängijatele sisukat tagasisidet ning luua rahuldust pakkuv ja kaasahaarav kogemus.

Parandage mängu kaasamist skoori jälgimise abil

Kui rakendate oma mängus skoori jälgimist, saate märkimisväärselt suurendada mängijate seotust. Tulemused annavad saavutustunde, soodustavad taasesitamist ja soodustavad mängijate vahelist konkurentsi.

Näidake tulemusi silmapaistvalt ja premeerige kõrgeid saavutusi – motiveerite mängijaid püüdlema parema soorituse poole ja parandama oma oskusi.