Dajte svojim igračima nešto za pokupiti dok napreduju kroz vašu igru.
Pojačanja i kolekcionarski predmeti ključni su elementi igre koji mogu poboljšati iskustvo igranja i dodati uzbuđenje arkadnim igrama. Oni igračima daju dodatne sposobnosti, nagrade i izazove. Uz arkadnu biblioteku, moći ćete kreirati zanimljive igre s pojačanjima i kolekcionarskim predmetima u tren oka.
Stvorite jednostavnu igru
Započnite s osnovnim postavkama gdje se igrač se može kretati u četiri smjera (lijevo, desno, gore i dolje) pomoću unosa s tipkovnice. Dodatno, uvedite jedan neprijateljski objekt kako biste omogućili interakciju unutar okruženja igre.
Kôd korišten u ovom članku dostupan je u ovom GitHub spremište i besplatan je za korištenje pod MIT licencom.
Stvorite novu datoteku pod nazivom jednostavna igra.py i dodajte donji kod:
uvoz arkada
plava = arkada.boja. PLAVA
crvena = arkada.boja. CRVENA
crno = arkada.boja. CRNO
bijelo = arkada.boja. BIJELA
žuto = arkada.boja. ŽUTA BOJA
zelena = arkada.boja. ZELENO
narančasta = arkada.boja. NARANČArazredaigra(arkada. Prozor):
def__u tome__(ja, širina, visina):
super().__init__(širina, visina)
arcade.set_background_color (crna)self.player = arkada. SpriteCircle(20, plava)
self.player.center_x = širina // 2
self.player.center_y = visina // 2sam.neprijatelj = arkada. SpriteSolidColor(20, 20, Crvena)
self.enemy.center_x = širina // 4
self.enemy.center_y = visina // 4defizvlačenje(sebe):
arcade.start_render()
self.player.draw()
self.neprijatelj.draw()defAžuriraj(sam, delta_vrijeme):
proćidefna_pritisak_tipke(ja, ključ, modifikatori):
ako ključ == arkada.ključ. LIJEVO:
self.player.center_x -= 10
elif ključ == arkada.ključ. PRAVO:
self.player.center_x += 10
elif ključ == arkada.ključ. GORE:
self.player.center_y += 10
elif ključ == arkada.ključ. DOLJE:
self.player.center_y -= 10defglavni():
igra = igra(800, 600)
arkada.run()
ako __ime__ == "__glavni__":
glavni()
Pokrenite ovaj kod i imat ćete osnovnu igru s kretanjem igrača i neprijateljskim objektom.
Stvaranje stanja igre
Da biste uključili pojačanja i kolekcionarske predmete, morate uspostaviti stanja igre kao što su rezultat i zdravlje. Možeš upravljati rezultatom i zdravlje pomoću zasebne varijable. Izmijenite kôd tako da uključuje te značajke. Zdravlje igrača će se smanjiti kada se sudare s neprijateljskim objektom.
razredaigra(arkada. Prozor):
def__u tome__(ja, širina, visina):
super().__init__(širina, visina)self.score = 0
samo.zdravlje = 100defizvlačenje(sebe):
arcade.draw_text(f"Rezultat: {self.score}", 10, 10, bijelo)
arcade.draw_text(f"Zdravlje: {self.health}", 10, 30, bijelo)defAžuriraj(sam, delta_vrijeme):
ako arcade.check_for_collision (self.player, self.nenemy):
sebe.zdravlje -= 10ako samo.zdravlje <= 0:
self.game_over()
defigra je gotova(sebe):
# Ovdje dodajte logiku igre
proći
Sada se zdravlje igrača smanjuje za 10 prilikom sudara s neprijateljem, a rezultat i vrijednosti zdravlja prikazuju se na ekranu.
Dodavanje kolekcionarskih predmeta
Zatim stvorite kolekcionarske predmete koji će povećati igračev rezultat za 10 kada ih prikupite. Ovi kolekcionarski predmeti imat će različite oblike za vizualnu raznolikost. Stvorite novu datoteku pod nazivom kolekcionarstvo.py i dodajte kod s ažuriranjem u nastavku:
razredaigra(arkada. Prozor):
def__u tome__(ja, širina, visina):
super().__init__(širina, visina)self.collectibles = arkada. SpriteList()
za _ u raspon (5):
kolekcionarstvo = arkada. SpriteSolidColor(20, 40, žuto)
collectible.center_x = random.randint(0, širina)
collectible.center_y = random.randint(0, visina)
self.collectibles.append (collectible)defizvlačenje(sebe):
arcade.start_render()
self.player.draw()
self.neprijatelj.draw()
self.collectibles.draw()
arcade.draw_text(f"Rezultat: {self.score}", 10, 10, bijelo)
arcade.draw_text(f"Zdravlje: {self.health}", 10, 30, bijelo)
defAžuriraj(sam, delta_vrijeme):
za sakupljivo u samo.kolekcionarstvo:
ako arcade.check_for_collision (self.player, kolekcionarski):
samo.rezultat += 10
collectible.remove_from_sprite_lists()
Napravite popis kolekcionarskih predmeta s pet primjeraka, od kojih je svaki predstavljen žutim pravokutnikom. Kada se igrač sudari s kolekcionarskim predmetom, njegov rezultat se povećava za 10, a kolekcionarski predmet se uklanja s popisa spriteova.
Dodavanje pojačanja
Sada svojoj igri možete dodati pojačanja. Kada igrač dobije pojačanje, oko njega će se pojaviti štit na 10 sekundi. Za to vrijeme, ako igrač se sudara s neprijateljem, uništit će neprijatelja. Stvorite novu datoteku pod nazivom pojačanja.py i dodajte kod s ažuriranjem u nastavku:
razredaigra(arkada. Prozor):
def__u tome__(ja, širina, visina):
super().__init__(širina, visina)self.power_up = arkada. SpriteSolidColor(50, 20, zelena)
self.power_up.center_x = random.randint(0, širina)
self.power_up.center_y = random.randint(0, visina)self.shield_active = lažno
self.shield_duration = 10
self.shield_timer = 0defizvlačenje(sebe):
arcade.start_render()
self.player.draw()
self.neprijatelj.draw()
self.collectibles.draw()
self.power_up.draw()
arcade.draw_text(f"Rezultat: {self.score}", 10, 10, bijelo)
arcade.draw_text(f"Zdravlje: {self.health}", 10, 30, bijelo)defAžuriraj(sam, delta_vrijeme):
ako arcade.check_for_collision (self.player, self.nenemy):
akone self.shield_active:
sebe.zdravlje -= 10
ako samo.zdravlje <= 0:
self.game_over()
drugo:
self.neprijatelj.ukloni_iz_popisa_spritea()ako self.shield_active:
self.shield_timer += delta_vrijemeako self.shield_timer >= self.shield_duration:
self.shield_active = lažno
self.shield_timer = 0za sakupljivo u samo.kolekcionarstvo:
ako arcade.check_for_collision (self.player, kolekcionarski):
samo.rezultat += 10
collectible.remove_from_sprite_lists()
ako arcade.check_for_collision (self.player, self.power_up):
self.shield_active = Pravi
self.power_up.remove_from_sprite_lists()
Ispod je izlaz:
Uključujući dodatne značajke
Možete dodatno poboljšati sustav pojačanja i kolekcionarskih predmeta dodavanjem dodatnih značajki. Na primjer, možete kreirati pojačanje timera koje produljuje vrijeme igranja kada se sakupi. Stvorite novu datoteku pod nazivom timer-power-up.py i dodajte kod s ažuriranjem u nastavku:
razredaigra(arkada. Prozor):
def__u tome__(ja, širina, visina):
super().__init__(širina, visina)
arcade.set_background_color (crna)self.player = arkada. SpriteCircle(20, plava)
# ...self.timer_power_up = arkada. SpriteSolidColor(40, 20, naranča)
self.timer_power_up.center_x = random.randint(0, širina)
self.timer_power_up.center_y = random.randint(0, visina)self.game_time = 60# Početno vrijeme igre u sekundama
self.timer_power_up_duration = 10# ...
defAžuriraj(sam, delta_vrijeme):
# ...ako 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()# ...
defglavni():
igra = igra(800, 600)
arkada.run()
ako __ime__ == "__glavni__":
glavni()
Najbolji primjeri iz prakse za pojačanja i kolekcionarske predmete
Pojačanja i kolekcionarski predmeti igraju ključnu ulogu u poboljšanju iskustva igranja arkadnih igara. Kako biste bili sigurni da su ti elementi ugodni i dobro integrirani u igru, bitno je slijediti neke najbolje prakse:
Vizualna jasnoća i dosljednost
Koristite različite i vizualno privlačne duhove za pojačanja i kolekcionarske predmete kako biste ih istaknuli od ostalih elemenata igre. Provjerite je li izgled pojačanja i kolekcionarskih predmeta usklađen s njihovim učincima i svrhom u igri.
Održavajte dosljednost u dizajnu, shemama boja i veličini za pojačanja i kolekcionarske predmete tijekom igre.
Ravnoteža i izazov
Prilagodite rijetkost i distribuciju pojačanja i kolekcionarskih predmeta kako biste zadržali osjećaj izazova i nagrade za igrače. Izbjegavajte opterećivati igrače s previše pojačanja ili kolekcionarskih predmeta, jer bi to moglo umanjiti utjecaj i uzbuđenje njihovog pronalaska.
Pažljivo uravnotežite učinkovitost i trajanje pojačanja kako biste spriječili da budu previše jaka ili nedovoljna.
Jasni pokazatelji i povratne informacije
Pružite jasne vizualne i audio indikatore kada igrač skupi pojačanje ili kolekcionarski predmet. Prikažite privremene vizualne efekte, poput animacija ili čestica, kako biste označili aktivaciju pojačanja i njihovo trajanje.
Odnos izazov-nagrada
Pobrinite se da pojačanja i kolekcionarski predmeti daju značajne nagrade igraču, kao što je povećanje rezultata, dodatne sposobnosti ili produljeno vrijeme igranja. Uskladite težinu dobivanja pojačanja i kolekcionarskih predmeta s pogodnostima koje nude. Izazovniji zadaci trebali bi donositi vrjednije nagrade.
Testiranje igre i balansiranje
Opsežno testirajte igru kako biste promatrali kako igrači komuniciraju s pojačanjima i kolekcionarskim predmetima. Upotrijebite povratne informacije igrača za fino podešavanje distribucije, trajanja i učinaka pojačanja i kolekcionarskih predmeta kako biste stvorili uravnoteženo i ugodno iskustvo.
Slijedeći ove najbolje prakse, možete stvoriti zadivljujući i dobro uravnotežen sustav za pojačavanje i kolekcionarstvo koji poboljšava iskustvo igranja i zadržava igrače uključene u vašu arkadnu igru.
Učinite igre zabavnijim uz pojačanja i kolekcionarske predmete
Pojačanja i kolekcionarski predmeti dodaju dodatni sloj uzbuđenja i angažmana arkadnim igrama. Oni ne samo da igračima daju nove sposobnosti i nagrade, već stvaraju i zanimljive izazove i strateške izbore.
Uključivanjem ovih značajki pomoću biblioteke Python Arcade, možete učiniti svoje igre ugodnijim i poboljšati cjelokupno iskustvo igranja za vaše igrače. Ne zaboravite eksperimentirati, ponavljati i osloboditi svoju kreativnost kako biste stvorili jedinstvena i zadivljujuća pojačanja i kolekcionarske predmete koji su u skladu s temom i mehanikom vaše igre.