Mi értelme egy pontozás nélküli játéknak? Egyesek nélkülözhetik, de a legtöbb játéknak meg kell mondania a játékosnak, hogy milyen jól teljesít.

A pontszámok sok játék szerves részét képezik, mivel a játékosok előrehaladását és teljesítményét mérik.

A Pythonban az Arcade könyvtár egyszerű és hatékony módszert kínál a játékokban elért pontszámok kezelésére. A pontszámok hatékony kezelésével fokozhatja a felhasználók elköteleződését, és magával ragadóbb játékélményt biztosíthat.

Hozzon létre egy egyszerű játékot

Mielőtt elkezdené, győződjön meg arról, hogy rendelkezik pip telepítve van a készülékére. Ezzel a paranccsal telepítheti az arcade könyvtárat:

pip install arcade

Most hozzon létre egy egyszerű játékot a Python Arcade könyvtárával.

A cikkben használt kód itt érhető el GitHub adattár és az MIT licence alapján ingyenesen használható.

Ebben a játékban a játékos balra és jobbra mozoghat a nyilakkal, miközben egy akadály kerül ugyanarra az y-tengelyre.

import árkád

# Állítsa be az ablak méreteit
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

osztályAz én játékom(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
szuper().__init__(szélesség, magasság)
self.player_x = szélesség // 3
self.score = 0

defon_key_press(én, kulcs, módosítók):
ha kulcs == arcade.key. BAL:
self.player_x -= 10
elif kulcs == arcade.key. JOBB:
self.player_x += 10

deffrissítés(self, delta_time):
# Frissítse a játék logikáját itt
pass

defon_draw(maga):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. KÉK)
arcade.draw_rectangle_filled(400, 50, 100, 50, arcade.color. PIROS)

deffő-():
játék = MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

ha __név__ == "__fő__":
fő()

Pontszámkövetés és számítás

A játékban elért pontszám nyomon követéséhez létrehozhat egy mechanizmust, amellyel növelheti a pontszámot, ha egy adott feltétel teljesül. Például a pontszám növekszik, amikor a játékos mozog a játékban és sikeresen megérinti az akadályt. Meg tudod változtatni a frissítés módszer a pontszámítási logika beépítésére:

osztályAz én játékom(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
szuper().__init__(szélesség, magasság)
self.player_x = szélesség // 3
self.score = 0

defon_key_press(én, kulcs, módosítók):
ha kulcs == arcade.key. BAL:
self.player_x -= 10
elif kulcs == arcade.key. JOBB:
self.player_x += 10

deffrissítés(self, delta_time):
ha self.player_x > 330és self.player_x < 470:
ön.pontszám += 1

A pontszám megjelenítése

A pontszám megjelenítéséhez a játékos számára módosítsa a on_draw módszer a szöveg megjelenítéséhez:

osztályAz én játékom(árkád. Ablak):
# ...

defon_draw(maga):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. KÉK)
arcade.draw_rectangle_filled(400, 300, 100, 50, arcade.color. PIROS)

score_text = f" Pontszám: {self.score}"
arcade.draw_text (score_text, 10, 10, arcade.color. FEHÉR, 14)

A fenti kód hozzáadásával megjelenítheti a pontszámot a játékablak bal alsó sarkában.

A magas pontszám tárolása

Ahhoz, hogy a játékosok sikerélményét és versenyt nyújtsunk, elengedhetetlen a magas pontszám tárolása és megjelenítése. Ehhez használhat egy egyszerű fájl alapú megközelítést.

Használja a load_high_score nevű fájlból a magas pontszámot kiolvashatja high_score.txt és adja vissza. Ezt követően az új rekordot a fájlba mentheti a mentés_magas_pontszám módszer.

osztályAz én játékom(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
szuper().__init__(szélesség, magasság)
self.player_x = szélesség // 3
self.score = 0
self.high_score = self.load_high_score()

defload_high_score(maga):
próbáld ki:
val vel nyisd ki("magas_pontszám.txt", "r") mint fájl:
Visszatérés int (file.read())
kivéve FileNotFoundError:
Visszatérés0

defmentés_magas_pontszám(maga):
val vel nyisd ki("magas_pontszám.txt", "w") mint fájl:
file.write (str (self.magas_pontszám))

deffrissítés(self, delta_time):
# ...

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

Magas pontszám megjelenítése

Az aktuális pontszám megjelenítéséhez hasonlóan szövegmegjelenítést is hozzáadhat a magas pontszám megjelenítéséhez:

osztályAz én játékom(árkád. Ablak):
# ...

defon_draw(maga):
# ...

high_score_text = f"Magas pontszám: {self.magas_pontszám}"
arcade.draw_text (high_score_text, 10, 30, arcade.color. FEHÉR, 14)

A fenti kód beillesztésével a on_draw módszerrel megjelenítheti a magas pontszámot közvetlenül az aktuális pontszám felett.

Kiegészítő funkciókkal együtt

A játékokban elért pontszámok kezelése gyakran magában foglalja a további funkciók beépítését is, amelyek vonzóbbá és dinamikusabbá teszik a játékmenetet. Nézzünk meg néhány példát arra vonatkozóan, hogyan vezethet be további funkciókat a pontszámkezelés mellett a játékban.

Power-Ups

A power-up olyan különleges tárgyak, amelyek ideiglenes előnyöket vagy bónuszpontokat biztosítanak a játékosoknak. Hozzon létre egy activate_power_up módszer, amely kiváltja a bekapcsolás aktiválását, beállítva a power_up_active jelölje meg True-ra.

ütemezheti a deactivate_power_up módszerrel fut egy bizonyos időtartam (pl. 10 másodperc) után a árkád.menetrend funkció. A bekapcsolás aktív időszaka alatt használhatja a alkalmaz_power_up_effects módszer konkrét játékmeneti fejlesztések megvalósítására.

Íme egy példa arra, hogyan implementálhat egy bekapcsoló funkciót a játékban.

osztályAz én játékom(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
szuper().__init__(szélesség, magasság)
self.player_x = szélesség // 3
self.score = 0
self.power_up_active = Hamis

deffrissítés(self, delta_time):
ha self.power_up_active:
# Alkalmazzon erősítő effektusokat játék közben
self.apply_power_up_effects()
ön.pontszám += 10

defalkalmaz_power_up_effects(maga):
# Adja hozzá a bekapcsolás-specifikus logikát
pass

defactivate_power_up(maga):
self.power_up_active = Igaz
# Állítson be időzítőt vagy időtartamot a bekapcsolási effektushoz
arcade.schedule (self.deactivate_power_up, 10.0)

defdeactivate_power_up(self, delta_time):
self.power_up_active = Hamis

Kombinált rendszer

A kombinált rendszer jutalmazza a játékosokat az egymást követő sikeres akciók vagy pontszámszorzók elérése esetén. Hozzon létre egy növeli a kombinált_számlálót módszer, amely növeli a kombinált számlálót és növeli a pontszámot az aktuális kombószint alapján.

Felhívhatja a reset_combo_counter módszert, és állítsa vissza a kombinált számlálót nullára, amikor sikertelen művelet történik. Íme a kombinált rendszer egyszerű megvalósítása:

osztályAz én játékom(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
szuper().__init__(szélesség, magasság)
self.player_x = szélesség // 3
self.score = 0
self.combo_counter = 0

deffrissítés(self, delta_time):
# Ellenőrizze a sikeres műveleteket
ha self.check_successful_action():
self.increase_combo_counter()
más:
self.reset_combo_counter()

defnöveli a kombinált_számlálót(maga):
self.combo_counter += 1
self.score += self.combo_counter

defreset_combo_counter(maga):
self.combo_counter = 0

További funkciók, például bekapcsolás és kombinált rendszerek beépítésével mélységet és izgalmat adhat a játékhoz, extra ösztönzőket biztosít a játékosoknak teljesítményük javítására, akcióik stratégiájának kialakítására és magasabb eredmények elérésére pontszámokat.

A pontszámkezelés legjobb gyakorlatai

Ha a játékokban elért pontszámokról van szó, a bevált gyakorlatok követése élvezetesebb és vonzóbb élményt nyújthat a játékosok számára. Íme néhány kulcsfontosságú gyakorlat, amelyet figyelembe kell venni:

Értelmes pontozási mechanizmusok

Tervezzen olyan pontozási mechanizmusokat, amelyek összhangban vannak a játék céljaival, és értelmes visszajelzést adnak a játékosoknak. A pontozási rendszernek tükröznie kell a játékos előrehaladását, képességeit és a játékon belüli eredményeit.

Fontolja meg, hogy a különböző akciókhoz vagy eseményekhez különböző pontértékeket rendeljen a nehézségük vagy a játékmenet szempontjából való fontosságuk alapján.

Vizuális visszajelzés

Adjon vizuális visszajelzést a játékosoknak, amikor az eredmény megváltozik. Ezt a képernyőn megjelenő értesítésekkel, animációkkal vagy részecskeeffektusokkal érheti el. A vizuális jelzések sikerélményt keltenek, és megerősítik a játékos cselekvéseit, növelve a játék iránti elkötelezettségét.

Hangeffektusok és animációk

Beépítés hanghatások a játékban pontfrissítésekkel kapcsolatos, hogy az élmény még magával ragadóbb legyen. Például játszhat le egy ünnepi hangeffektust, vagy jeleníthet meg egy sorozat konfettit, amikor a játékos elér egy jelentős mérföldkövet. Ezek az audiovizuális elemek izgalmat adnak, és megerősítik a játékosok pozitív visszacsatolási hurkát.

Kiegyensúlyozási nehézségek és pontszámok skálázása

Biztosítson kiegyensúlyozott kapcsolatot a nehézségi fok és a pontszámok skálázása között. Ahogy a játékosok előrehaladnak a játékban, vagy nagyobb kihívást jelentő akadályokba ütköznek, állítsa be ennek megfelelően a pontozási rendszert. A pontszám skálázása a játék nehézségi görbéje alapján segít fenntartani a tisztességes és kifizetődő élményt a játékosok számára.

E bevált gyakorlatok betartásával hatékonyan kezelheti játéka pontszámait, tartalmas visszajelzést adhat a játékosoknak, és kifizetődő és megnyerő élményt teremthet.

Javítsa a játék elköteleződését a pontszámkövetéssel

Ha a pontszámkövetést alkalmazza a játékban, jelentősen növelheti a játékosok elköteleződését. A pontszámok sikerélményt adnak, ösztönzik az újrajátszhatóságot, és elősegítik a játékosok közötti versenyt.

Mutasd feltűnően a pontszámokat, és jutalmazd a magas teljesítményeket – motiválhatod a játékosokat a jobb teljesítményre és képességeik fejlesztésére.