Adj a játékosaidnak valamit, amit felvehetsz, miközben előrehaladnak a játékodban.

A teljesítménynövelések és a gyűjthető tárgyak olyan alapvető játékelemek, amelyek fokozhatják a játékélményt, és izgalmat adhatnak az ügyességi játékokhoz. További képességeket, jutalmakat és kihívásokat biztosítanak a játékosoknak. Az árkádkönyvtár segítségével pillanatok alatt lebilincselő játékokat hozhat létre teljesítménynövelőkkel és gyűjthető tárgyakkal.

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

Kezdje egy alapbeállítással, ahol a A játékos négy irányba mozoghat (balra, jobbra, fel és le) a billentyűzet bemenetei segítségével. Ezenkívül vezessen be egy ellenséges objektumot, hogy interakciót biztosítson a játékkörnyezeten belül.

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

Hozzon létre egy új nevű fájlt simple-game.py és add hozzá az alábbi kódot:

import árkád

kék = arcade.color. KÉK
piros = arcade.color. PIROS
fekete = arcade.color. FEKETE
fehér = arcade.color. FEHÉR
sárga = arcade.color. SÁRGA
zöld = arcade.color. ZÖLD
narancs = arcade.color. NARANCS

instagram viewer

osztályJátszma, meccs(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
szuper().__init__(szélesség, magasság)
arcade.set_background_color (fekete)

self.player = arcade. SpriteCircle(20, kék)
self.player.center_x = szélesség // 2
self.player.center_y = magasság // 2

én.ellenség = arcade. SpriteSolidColor(20, 20, piros)
self.enemy.center_x = szélesség // 4
self.enemy.center_y = magasság // 4

defon_draw(maga):
arcade.start_render()
self.player.draw()
self.enemy.draw()

deffrissítés(self, delta_time):
pass

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

deffő-():
játék = játék(800, 600)
arcade.run()

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

Futtasd ezt a kódot, és lesz egy alapjátékod játékos mozgással és egy ellenséges objektummal.

Játékállapotok létrehozása

A teljesítménynövelések és a gyűjthető tárgyak beépítéséhez meg kell határoznia a játék állapotait, például pontszámot és állapotot. tudsz pontszámot kezelni és egészségügy egy külön változó használatával. Módosítsa a kódot, hogy tartalmazza ezeket a funkciókat. A játékos egészségi állapota csökken, amikor ütközik az ellenséges tárggyal.

osztályJátszma, meccs(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
szuper().__init__(szélesség, magasság)

self.score = 0
ön.egészség = 100

defon_draw(maga):
arcade.draw_text(f" Pontszám: {self.score}", 10, 10, fehér)
arcade.draw_text(f"Egészség: {self.health}", 10, 30, fehér)

deffrissítés(self, delta_time):
ha arcade.check_for_collision (self.player, self.enemy):
ön.egészség -= 10

ha ön.egészség <= 0:
self.game_over()

defjáték vége(maga):
# Add hozzá a játékot a logikához
pass

Mostantól a játékos életereje 10-zel csökken, amikor az ellenséggel ütközik, és a pontszám és az életerő értékek megjelennek a képernyőn.

Gyűjtemények hozzáadása

Ezután hozzon létre gyűjthető tárgyakat, amelyek 10-zel növelik a játékos pontszámát, ha összegyűjtik. Ezek a gyűjthető tárgyak különböző formájúak lesznek a vizuális változatosság érdekében. Hozzon létre egy új nevű fájlt gyűjthetőek.py és adja hozzá a kódot az alábbi frissítéssel:

osztályJátszma, meccs(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
szuper().__init__(szélesség, magasság)

saját.gyűjtemény = árkád. SpriteList()

számára _ ban ben hatótávolság(5):
gyűjthető = arcade. SpriteSolidColor(20, 40, sárga)
gyűjthető.center_x = random.randint(0, szélesség)
gyűjthető.center_y = random.randint(0, magasság)
self.collectibles.append (gyűjthető)

defon_draw(maga):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
arcade.draw_text(f" Pontszám: {self.score}", 10, 10, fehér)
arcade.draw_text(f"Egészség: {self.health}", 10, 30, fehér)

deffrissítés(self, delta_time):
számára gyűjthető ban ben saját.gyűjtemény:
ha arcade.check_for_collision (self.player, gyűjthető):
ön.pontszám += 10
collectionible.remove_from_sprite_lists()

Hozzon létre egy listát a gyűjthető tárgyakról öt példányból, amelyek mindegyikét egy sárga téglalap ábrázolja. Amikor a játékos összeütközik egy gyűjthető tárgyjal, pontszáma 10-zel nő, és a gyűjthető tárgy lekerül a sprite-listáról.

Power-Upok hozzáadása

Mostantól erősítheti a játékot. Amikor a játékos bekapja az erőt, egy pajzs jelenik meg körülöttük 10 másodpercre. Ez idő alatt, ha a játékos ütközik az ellenséggel, elpusztítják az ellenséget. Hozzon létre egy új nevű fájlt power-ups.py és adja hozzá a kódot az alábbi frissítéssel:

osztályJátszma, meccs(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
szuper().__init__(szélesség, magasság)

self.power_up = arcade. SpriteSolidColor(50, 20, zöld)
self.power_up.center_x = random.randint(0, szélesség)
self.power_up.center_y = random.randint(0, magasság)

self.shield_active = Hamis
self.shield_duration = 10
self.shield_timer = 0

defon_draw(maga):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
self.power_up.draw()
arcade.draw_text(f" Pontszám: {self.score}", 10, 10, fehér)
arcade.draw_text(f"Egészség: {self.health}", 10, 30, fehér)

deffrissítés(self, delta_time):
ha arcade.check_for_collision (self.player, self.enemy):
hanem self.shield_active:
ön.egészség -= 10
ha ön.egészség <= 0:
self.game_over()
más:
self.enemy.remove_from_sprite_lists()

ha self.shield_active:
self.shield_timer += delta_time

ha self.shield_timer >= self.shield_duration:
self.shield_active = Hamis
self.shield_timer = 0

számára gyűjthető ban ben saját.gyűjtemény:
ha arcade.check_for_collision (self.player, gyűjthető):
ön.pontszám += 10
collectionible.remove_from_sprite_lists()

ha arcade.check_for_collision (self.player, self.power_up):
self.shield_active = Igaz
self.power_up.remove_from_sprite_lists()

Alább látható a kimenet:

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

További funkciók hozzáadásával tovább fejlesztheti a teljesítmény- és gyűjteményes rendszert. Például létrehozhat egy időzítőt, amely meghosszabbítja a játékidőt, ha összegyűjti. Hozzon létre egy új nevű fájlt timer-power-up.py és adja hozzá a kódot az alábbi frissítéssel:

osztályJátszma, meccs(árkád. Ablak):
def__benne__(önmagasság, szélesség, magasság):
szuper().__init__(szélesség, magasság)
arcade.set_background_color (fekete)

self.player = arcade. SpriteCircle(20, kék)
# ...

self.timer_power_up = arcade. SpriteSolidColor(40, 20, narancs)
self.timer_power_up.center_x = random.randint(0, szélesség)
self.timer_power_up.center_y = random.randint(0, magasság)

self.game_time = 60# Kezdeti játékidő másodpercben
self.timer_power_up_duration = 10

# ...

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

ha arcade.check_for_collision (self.player, self.timer_power_up):
self.game_time += self.timer_power_up_duration
self.timer_power_up.remove_from_sprite_lists()

# ...

deffő-():
játék = játék(800, 600)
arcade.run()

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

Bevált gyakorlatok a teljesítménynöveléshez és a gyűjteményhez

A teljesítménynövelők és a gyűjthető tárgyak döntő szerepet játszanak az arcade játékok játékélményének javításában. Annak érdekében, hogy ezek az elemek élvezetesek legyenek, és jól beépüljenek a játékba, elengedhetetlen néhány bevált gyakorlat követése:

Vizuális tisztaság és következetesség

Használj különálló és tetszetős sprite-eket a teljesítménynöveléshez és a gyűjthető tárgyakhoz, hogy kitűnjenek a többi játékelem közül. Győződjön meg arról, hogy a teljesítménynövelők és a gyűjthető tárgyak megjelenése összhangban van a játékbeli hatásukkal és céljukkal.

Tartsa fenn a dizájn, a színséma és a méret egységességét a teljesítménynövelők és a gyűjthető tárgyak esetében a játék során.

Egyensúly és kihívás

Állítsd be a teljesítmény-felszerelések és a gyűjthető tárgyak ritkaságát és megoszlását, hogy fenntartsd a kihívás és a jutalom érzését a játékosok számára. Kerülje el, hogy a játékosokat túl sok erővel vagy gyűjthető tárgyjal terhelje le, mert ez csökkentheti a megtalálásuk hatását és izgalmát.

Gondosan állítsa egyensúlyba a bekapcsolások hatékonyságát és időtartamát, nehogy túlságosan túlterheltek vagy túlterheltek legyenek.

Világos mutatók és visszajelzések

Világos vizuális és hangjelzéseket adjon, amikor a lejátszó begyűjti a tápellátást vagy a gyűjthető tárgyat. Ideiglenes vizuális effektusok, például animációk vagy részecskék megjelenítése a bekapcsolás aktiválásának és időtartamának jelzésére.

Kihívás-jutalom kapcsolat

Győződjön meg arról, hogy a teljesítménynövelések és a gyűjthető tárgyak jelentős jutalmakat biztosítanak a játékosnak, például megnövekedett pontszámot, további képességeket vagy hosszabb játékidőt. Állítsd összhangba a teljesítménynövelők és gyűjthető tárgyak megszerzésének nehézségét az általuk kínált előnyökkel. A nagyobb kihívást jelentő feladatok értékesebb jutalmat hoznak.

Játékteszt és egyensúlyozás

Játssz alaposan teszteld a játékot, hogy megfigyeld, hogyan lépnek kapcsolatba a játékosok a power-upokkal és a gyűjthető tárgyakkal. Használja a játékosok visszajelzéseit az erősítések és gyűjtemények eloszlásának, időtartamának és hatásainak finomhangolásához, hogy kiegyensúlyozott és élvezetes élményt teremtsen.

Ha követi ezeket a bevált gyakorlatokat, lenyűgöző és kiegyensúlyozott bekapcsoló- és gyűjthető rendszert hozhat létre, amely javítja a játékélményt, és leköti a játékosokat az arcade játékban.

Tedd szórakoztatóbbá a játékokat a teljesítménynövelésekkel és a gyűjthető tárgyakkal

A feljavítások és a gyűjthető tárgyak extra izgalmat és elköteleződést kölcsönöznek az ügyességi játékoknak. Nemcsak új képességeket és jutalmakat biztosítanak a játékosoknak, hanem érdekes kihívásokat és stratégiai döntéseket is teremtenek.

Ha ezeket a funkciókat a Python Arcade könyvtárba építi be, akkor még élvezetesebbé teheti játékait, és javíthatja a játékosok teljes játékélményét. Ne felejtsen el kísérletezni, iterálni és szabadjára engedni kreativitását, hogy egyedi és magával ragadó kiegészítőket és gyűjthető tárgyakat készítsen, amelyek illeszkednek a játék témájához és mechanikájához.