Dejte svým hráčům něco, co si vyzvednou, když postupují vaší hrou.

Vylepšení a sběratelské předměty jsou základní herní prvky, které mohou zlepšit herní zážitek a přidat vzrušení do arkádových her. Poskytují hráčům další schopnosti, odměny a výzvy. S arkádovou knihovnou budete moci během okamžiku vytvářet poutavé hry s vylepšeními a sběratelskými předměty.

Vytvořte jednoduchou hru

Začněte se základním nastavením, kde hráč se může pohybovat čtyřmi směry (doleva, doprava, nahoru a dolů) pomocí vstupů z klávesnice. Navíc představte jeden nepřátelský objekt, který zajistí interakci v herním prostředí.

Kód použitý v tomto článku je k dispozici v tomto úložiště GitHub a můžete jej používat zdarma pod licencí MIT.

Vytvořte nový soubor s názvem jednoduchá hra.py a přidejte níže uvedený kód:

import pasáž

modrá = arkáda.barva. MODRÝ
červená = arkáda.barva. ČERVENÉ
černá = arkáda.barva. ČERNÁ
bílá = arkáda.barva. BÍLÝ
žlutá = arkáda.barva. ŽLUTÁ
zelená = arkáda.barva. ZELENÁ
oranžová = arkáda.barva. ORANŽOVÝ

instagram viewer

třídaHra(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška)
arcade.set_background_color (černá)

self.player = arkáda. SpriteCircle(20, modrá)
self.player.center_x = šířka // 2
self.player.center_y = výška // 2

sebe.nepřítel = arkáda. SpriteSolidColor(20, 20, Červené)
self.nemy.center_x = šířka // 4
self.nemy.center_y = výška // 4

defon_draw(já):
arcade.start_render()
self.player.draw()
self.nemy.draw()

defAktualizace(self, delta_time):
složit

defon_key_press(vlastní, klíč, modifikátory):
-li klíč == arcade.key. VLEVO, ODJET:
self.player.center_x -= 10
elif klíč == arcade.key. ŽE JO:
self.player.center_x += 10
elif klíč == arcade.key. NAHORU:
self.player.center_y += 10
elif klíč == arcade.key. DOLŮ:
self.player.center_y -= 10

defhlavní():
hra = hra(800, 600)
arcade.run()

-li __jméno__ == "__hlavní__":
hlavní()

Spusťte tento kód a budete mít základní hru s pohybem hráče a nepřátelským objektem.

Vytváření herních stavů

Chcete-li začlenit vylepšení a sběratelské předměty, musíte vytvořit herní stavy, jako je skóre a zdraví. Můžeš spravovat skóre a zdraví pomocí samostatné proměnné. Upravte kód tak, aby zahrnoval tyto funkce. Hráčovo zdraví se sníží, když se srazí s nepřátelským objektem.

třídaHra(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška)

sebe.skóre = 0
sebe.zdraví = 100

defon_draw(já):
arcade.draw_text(f" Skóre: {self.score}", 10, 10, bílá)
arcade.draw_text(f" Zdraví: {self.health}", 10, 30, bílá)

defAktualizace(self, delta_time):
-li arcade.check_for_collision (self.player, self.nemy):
vlastní.zdraví -= 10

-li vlastní zdraví <= 0:
self.game_over()

defkonec hry(já):
# Zde přidejte hru přes logiku
složit

Nyní se zdraví hráče při střetu s nepřítelem sníží o 10 a na obrazovce se zobrazí skóre a hodnoty zdraví.

Přidávání sběratelských předmětů

Dále vytvořte sběratelské předměty, které při sesbírání zvýší hráčovo skóre o 10. Tyto sběratelské předměty budou mít různé tvary pro vizuální rozmanitost. Vytvořte nový soubor s názvem sběratelské předměty.py a přidejte kód s níže uvedenou aktualizací:

třídaHra(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška)

self.sběratelství = podloubí. SpriteList()

pro _ v rozsah(5):
sběratelská = arkáda. SpriteSolidColor(20, 40, žlutá)
collectible.center_x = random.randint(0, šířka)
collectible.center_y = random.randint(0, výška)
self.collectibles.append (sběratelské)

defon_draw(já):
arcade.start_render()
self.player.draw()
self.nemy.draw()
self.collectibles.draw()
arcade.draw_text(f" Skóre: {self.score}", 10, 10, bílá)
arcade.draw_text(f" Zdraví: {self.health}", 10, 30, bílá)

defAktualizace(self, delta_time):
pro sběratelský v vlastní sběratelské předměty:
-li arcade.check_for_collision (self.player, sběratelský předmět):
sebe.skóre += 10
collectible.remove_from_sprite_lists()

Vytvořte seznam sběratelských předmětů s pěti instancemi, každou reprezentovanou žlutým obdélníkem. Když se hráč srazí se sběratelským předmětem, jeho skóre se zvýší o 10 a sběratelský předmět je odstraněn ze seznamu sprite.

Přidávání Power-Ups

Nyní můžete do hry přidat vylepšení. Když hráč získá power-up, objeví se kolem něj na 10 sekund štít. Během této doby, pokud hráč se srazí s nepřítelem, zničí nepřítele. Vytvořte nový soubor s názvem power-ups.py a přidejte kód s níže uvedenou aktualizací:

třídaHra(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška)

self.power_up = arkáda. SpriteSolidColor(50, 20, zelená)
self.power_up.center_x = random.randint(0, šířka)
self.power_up.center_y = random.randint(0, výška)

self.shield_active = Nepravdivé
self.shield_duration = 10
self.shield_timer = 0

defon_draw(já):
arcade.start_render()
self.player.draw()
self.nemy.draw()
self.collectibles.draw()
self.power_up.draw()
arcade.draw_text(f" Skóre: {self.score}", 10, 10, bílá)
arcade.draw_text(f" Zdraví: {self.health}", 10, 30, bílá)

defAktualizace(self, delta_time):
-li arcade.check_for_collision (self.player, self.nemy):
-line self.shield_active:
vlastní.zdraví -= 10
-li vlastní zdraví <= 0:
self.game_over()
jiný:
self.nemy.remove_from_sprite_lists()

-li self.shield_active:
self.shield_timer += delta_time

-li self.shield_timer >= self.shield_duration:
self.shield_active = Nepravdivé
self.shield_timer = 0

pro sběratelský v vlastní sběratelské předměty:
-li arcade.check_for_collision (self.player, sběratelský předmět):
sebe.skóre += 10
collectible.remove_from_sprite_lists()

-li arcade.check_for_collision (self.player, self.power_up):
self.shield_active = Skutečný
self.power_up.remove_from_sprite_lists()

Níže je výstup:

Včetně dalších funkcí

Systém vylepšení a sběratelských předmětů můžete dále vylepšit přidáním dalších funkcí. Můžete například vytvořit zapnutí časovače, který prodlouží herní dobu při sběru. Vytvořte nový soubor s názvem timer-power-up.py a přidejte kód s níže uvedenou aktualizací:

třídaHra(pasáž. Okno):
def__init__(vlastní, šířka, výška):
super().__init__(šířka, výška)
arcade.set_background_color (černá)

self.player = arkáda. SpriteCircle(20, modrá)
# ...

self.timer_power_up = arkáda. SpriteSolidColor(40, 20, oranžový)
self.timer_power_up.center_x = random.randint(0, šířka)
self.timer_power_up.center_y = random.randint(0, výška)

self.game_time = 60# Počáteční doba hry v sekundách
self.timer_power_up_duration = 10

# ...

defAktualizace(self, delta_time):
# ...

-li 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()

# ...

defhlavní():
hra = hra(800, 600)
arcade.run()

-li __jméno__ == "__hlavní__":
hlavní()

Osvědčené postupy pro vylepšení a sběratelské předměty

Vylepšení a sběratelské předměty hrají zásadní roli při vylepšování herního zážitku z arkádových her. Aby byly tyto prvky příjemné a dobře integrované do hry, je nezbytné dodržovat některé osvědčené postupy:

Vizuální jasnost a konzistence

Používejte výrazné a vizuálně přitažlivé skřítky pro vylepšení a sběratelské předměty, abyste je odlišili od ostatních herních prvků. Ujistěte se, že vzhled vylepšení a sběratelských předmětů odpovídá jejich efektům a účelu ve hře.

Udržujte konzistenci v designu, barevných schématech a velikosti pro vylepšení a sběratelské předměty v průběhu hry.

Rovnováha a výzva

Upravte vzácnost a distribuci vylepšení a sběratelských předmětů, abyste si zachovali pocit výzvy a odměny pro hráče. Vyhněte se zahlcení hráčů příliš mnoha vylepšeními nebo sběratelskými předměty, protože by to mohlo snížit dopad a vzrušení z jejich hledání.

Pečlivě vyvažte účinnost a dobu trvání power-upů, abyste zabránili jejich přílišnému přemáhání nebo přemožení.

Jasné indikátory a zpětná vazba

Poskytněte jasné vizuální a zvukové indikátory, když hráč sbírá power-up nebo sběratelský předmět. Zobrazte dočasné vizuální efekty, jako jsou animace nebo částice, které označují aktivaci power-upů a jejich trvání.

Vztah výzva-odměna

Zajistěte, aby vylepšení a sběratelské předměty poskytovaly hráči smysluplné odměny, jako je zvýšené skóre, další schopnosti nebo prodloužená doba hraní. Slaďte obtížnost získávání vylepšení a sběratelských předmětů s výhodami, které nabízejí. Náročnější úkoly by měly přinést hodnotnější odměny.

Playtesting a balancování

Hru si důkladně otestujte a sledujte, jak hráči interagují s vylepšeními a sběratelskými předměty. Pomocí zpětné vazby hráčů dolaďte distribuci, trvání a efekty vylepšení a sběratelských předmětů, abyste vytvořili vyvážený a příjemný zážitek.

Dodržováním těchto osvědčených postupů můžete vytvořit podmanivý a dobře vyvážený systém vylepšení a sběratelských předmětů, který zlepší herní zážitek a udrží hráče v zapojení do vaší arkádové hry.

Udělejte ze hry větší zábavu s vylepšeními a sběratelskými předměty

Vylepšení a sběratelské předměty dodávají arkádovým hrám další vrstvu vzrušení a zapojení. Poskytují hráčům nejen nové schopnosti a odměny, ale také vytvářejí zajímavé výzvy a strategické volby.

Začleněním těchto funkcí pomocí knihovny Python Arcade můžete své hry zpříjemnit a zlepšit celkový herní zážitek pro vaše hráče. Nezapomeňte experimentovat, opakovat a popustit uzdu své kreativitě, abyste vytvořili jedinečné a strhující vylepšení a sběratelské předměty, které budou v souladu s tématem a mechanismy vaší hry.