Suteikite savo žaidėjams ką nors pasiimti, kai jie progresuoja jūsų žaidime.

Papildymai ir kolekcionuojami daiktai yra esminiai žaidimo elementai, galintys pagerinti žaidimo patirtį ir suteikti jaudulio arkadiniams žaidimams. Jie suteikia žaidėjams papildomų sugebėjimų, apdovanojimų ir iššūkių. Naudodami arkadinę biblioteką galėsite greitai sukurti patrauklius žaidimus su galia ir kolekcionuojamais daiktais.

Sukurkite paprastą žaidimą

Pradėkite nuo pagrindinės sąrankos, kur žaidėjas gali judėti keturiomis kryptimis (kairėn, dešinėn, aukštyn ir žemyn) naudodami klaviatūros įvestis. Be to, pristatykite vieną priešo objektą, kad užtikrintumėte sąveiką žaidimo aplinkoje.

Šiame straipsnyje naudojamas kodas pateikiamas čia GitHub saugykla ir jūs galite nemokamai naudotis pagal MIT licenciją.

Sukurkite naują failą pavadinimu paprastas žaidimas.py ir pridėkite žemiau esantį kodą:

importuoti arkada

mėlyna = arkada.spalva. MĖLYNA
raudona = arkada.spalva. RAUDONA
juoda = arkadinė.spalva. JUODAS
balta = arkada.spalva. BALTAS

instagram viewer

geltona = arkada.spalva. GELTONA
žalia = arkada.spalva. ŽALIAS
oranžinė = arkadinė.spalva. ORANŽINĖ

klasėŽaidimas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
super().__init__(plotis, aukštis)
arcade.set_background_color (juoda)

self.player = arkada. SpriteCircle(20, mėlyna)
self.player.center_x = plotis // 2
self.player.center_y = aukštis // 2

save.priešas = arkada. SpriteSolidColor(20, 20, raudona)
self.enemy.center_x = plotis // 4
self.enemy.center_y = aukštis // 4

defon_draw(savarankiškai):
arcade.start_render()
self.player.draw()
self.enemy.draw()

defatnaujinti(savaime, delta_laikas):
praeiti

defyra_key_press(savaime, raktas, modifikatoriai):
jeigu raktas == arcade.key. KAIRĖ:
self.player.center_x -= 10
elifas raktas == arcade.key. DEŠINĖJE:
self.player.center_x += 10
elifas raktas == arcade.key. AUKŠTYN:
self.player.center_y += 10
elifas raktas == arcade.key. ŽEMYN:
self.player.center_y -= 10

defpagrindinis():
žaidimas = žaidimas (800, 600)
arcade.run()

jeigu __vardas__ == "__pagrindinis__":
pagrindinis ()

Paleiskite šį kodą ir turėsite pagrindinį žaidimą su žaidėjo judėjimu ir priešo objektu.

Žaidimo būsenų kūrimas

Norėdami įtraukti galios ir kolekcionuojamų daiktų, turite nustatyti žaidimo būsenas, tokias kaip rezultatas ir sveikata. Tu gali valdyti rezultatą ir sveikata naudojant atskirą kintamąjį. Pakeiskite kodą, kad įtrauktumėte šias funkcijas. Žaidėjo sveikata pablogės, kai jie susidurs su priešo objektu.

klasėŽaidimas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
super().__init__(plotis, aukštis)

savarankiškai.balas = 0
savęs.sveikata = 100

defon_draw(savarankiškai):
arcade.draw_text(f" balas: {self.score}", 10, 10, balta)
arcade.draw_text(f"Sveikata: {self.health}", 10, 30, balta)

defatnaujinti(savaime, delta_laikas):
jeigu arcade.check_for_collision (self.player, self.enemy):
savęs.sveikata -= 10

jeigu savęs.sveikata <= 0:
self.game_over()

defžaidimas baigtas(savarankiškai):
# Čia pridėkite žaidimą virš logikos
praeiti

Dabar susidūrus su priešu žaidėjo sveikata sumažėja 10, o rezultatas ir sveikatos reikšmės rodomos ekrane.

Kolekcionuojamų daiktų pridėjimas

Tada sukurkite kolekcionuojamus daiktus, kuriuos surinkus žaidėjo rezultatas padidės 10. Šie kolekcionuojami daiktai bus skirtingų formų, kad būtų vizualiai įvairesni. Sukurkite naują failą pavadinimu kolekcionuojami daiktai.py ir pridėkite kodą su toliau nurodytu atnaujinimu:

klasėŽaidimas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
super().__init__(plotis, aukštis)

savarankiškai.kolekcionuojami daiktai = arkada. SpriteList()

dėl _ in diapazonas(5):
kolekcionuojamas = arkada. SpriteSolidColor(20, 40, geltona)
collectible.center_x = atsitiktinis.randint(0, plotis)
collectible.center_y = random.randint(0, aukštis)
self.colectibles.apend (kolekcionuojami)

defon_draw(savarankiškai):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.colectibles.draw()
arcade.draw_text(f" balas: {self.score}", 10, 10, balta)
arcade.draw_text(f"Sveikata: {self.health}", 10, 30, balta)

defatnaujinti(savaime, delta_laikas):
dėl kolekcinis in kolekcionuojami daiktai:
jeigu arcade.check_for_collision (self.player, kolekcinis):
savarankiškai.balas += 10
collectible.remove_from_sprite_lists()

Sukurkite kolekcionuojamų daiktų sąrašą su penkiais egzemplioriais, kurių kiekvienas pavaizduotas geltonu stačiakampiu. Kai žaidėjas susiduria su kolekcionuojamu daiktu, jo rezultatas padidėja 10, o kolekcionuojamas daiktas pašalinamas iš sprite sąrašo.

Papildymų pridėjimas

Dabar galite papildyti savo žaidimą. Kai žaidėjas surenka maitinimą, 10 sekundžių aplink juos pasirodys skydas. Per šį laiką, jei žaidėjas susiduria su priešu, jie sunaikins priešą. Sukurkite naują failą pavadinimu power-ups.py ir pridėkite kodą su toliau nurodytu atnaujinimu:

klasėŽaidimas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
super().__init__(plotis, aukštis)

self.power_up = arkada. SpriteSolidColor(50, 20, žalias)
self.power_up.center_x = random.randint(0, plotis)
self.power_up.center_y = random.randint(0, aukštis)

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

defon_draw(savarankiškai):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.colectibles.draw()
self.power_up.draw()
arcade.draw_text(f" balas: {self.score}", 10, 10, balta)
arcade.draw_text(f"Sveikata: {self.health}", 10, 30, balta)

defatnaujinti(savaime, delta_laikas):
jeigu arcade.check_for_collision (self.player, self.enemy):
jeigune self.shield_active:
savęs.sveikata -= 10
jeigu savęs.sveikata <= 0:
self.game_over()
Kitas:
self.enemy.remove_from_sprite_lists()

jeigu self.shield_active:
self.shield_timer += delta_time

jeigu self.shield_timer >= self.shield_duration:
self.shield_active = Netiesa
self.shield_timer = 0

dėl kolekcinis in kolekcionuojami daiktai:
jeigu arcade.check_for_collision (self.player, kolekcinis):
savarankiškai.balas += 10
collectible.remove_from_sprite_lists()

jeigu arcade.check_for_collision (self.player, self.power_up):
self.shield_active = Tiesa
self.power_up.remove_from_sprite_lists()

Žemiau yra išvestis:

Įskaitant papildomas funkcijas

Galite dar labiau patobulinti galios ir kolekcionuojamų daiktų sistemą pridėdami papildomų funkcijų. Pavyzdžiui, galite sukurti laikmačio įjungimą, kuris pailgina žaidimo laiką, kai jį surenkate. Sukurkite naują failą pavadinimu laikmatis-power-up.py ir pridėkite kodą su toliau nurodytu atnaujinimu:

klasėŽaidimas(arkada. Langas):
def__init__(savaime, plotis, aukštis):
super().__init__(plotis, aukštis)
arcade.set_background_color (juoda)

self.player = arkada. SpriteCircle(20, mėlyna)
# ...

self.timer_power_up = arkada. SpriteSolidColor(40, 20, oranžinė)
self.timer_power_up.center_x = random.randint(0, plotis)
self.timer_power_up.center_y = random.randint(0, aukštis)

self.game_time = 60# Pradinis žaidimo laikas sekundėmis
self.timer_power_up_duration = 10

# ...

defatnaujinti(savaime, delta_laikas):
# ...

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

# ...

defpagrindinis():
žaidimas = žaidimas (800, 600)
arcade.run()

jeigu __vardas__ == "__pagrindinis__":
pagrindinis ()

Geriausios patobulinimų ir kolekcionuojamų daiktų praktika

Papildymai ir kolekcionuojami daiktai atlieka lemiamą vaidmenį gerinant arkadinių žaidimų žaidimo patirtį. Norint užtikrinti, kad šie elementai būtų malonūs ir gerai integruoti į žaidimą, būtina vadovautis kai kuriomis geriausiomis praktikomis:

Vizualinis aiškumas ir nuoseklumas

Naudokite išskirtinius ir vizualiai patrauklius spritus, kad gautumėte energijos ir kolekcionuojamų daiktų, kad jie išsiskirtų iš kitų žaidimo elementų. Įsitikinkite, kad patobulinimų ir kolekcionuojamų daiktų išvaizda atitinka jų poveikį ir paskirtį žaidime.

Viso žaidimo metu išlaikykite nuoseklų dizainą, spalvų schemas ir dydį.

Balansas ir iššūkis

Sureguliuokite papildymų ir kolekcionuojamų daiktų retumą ir pasiskirstymą, kad žaidėjai jaustų iššūkius ir atlygį. Venkite priblokšti žaidėjų, turinčių per daug galių ar kolekcionuojamų daiktų, nes tai gali sumažinti jų radimo poveikį ir jaudulį.

Kruopščiai subalansuokite įjungimų veiksmingumą ir trukmę, kad jie nebūtų per daug pervargę ar neįveikiami.

Aiškūs rodikliai ir atsiliepimai

Pateikite aiškius vaizdinius ir garso indikatorius, kai grotuvas renka įjungimą ar kolekcionuojamą daiktą. Rodyti laikinus vaizdinius efektus, pvz., animacijas ar daleles, nurodančius įjungimo įjungimą ir jų trukmę.

Iššūkio-atlygio santykis

Įsitikinkite, kad papildymai ir kolekcionuojami daiktai suteikia žaidėjui reikšmingą atlygį, pvz., padidintą rezultatą, papildomus sugebėjimus ar pailgintą žaidimo laiką. Suderinkite energijos ir kolekcionuojamų daiktų įsigijimo sunkumus su jų teikiamais pranašumais. Sudėtingesnės užduotys turėtų duoti vertingesnio atlygio.

Žaidimų testavimas ir balansavimas

Išbandykite žaidimą plačiai, kad stebėtumėte, kaip žaidėjai sąveikauja su jėgomis ir kolekcionuojamais daiktais. Naudokite žaidėjų atsiliepimus, kad patikslintumėte galios ir kolekcionuojamų daiktų paskirstymą, trukmę ir poveikį, kad sukurtumėte subalansuotą ir malonią patirtį.

Vadovaudamiesi šia geriausia praktika, galite sukurti patrauklią ir gerai subalansuotą maitinimo ir kolekcionuojamų daiktų sistemą, kuri pagerins žaidimo patirtį ir leis žaidėjams įsitraukti į jūsų arkadinį žaidimą.

Padarykite žaidimus įdomesnius naudodami papildomus elementus ir kolekcionuojamus daiktus

Papildymai ir kolekcionuojami daiktai arkadiniams žaidimams suteikia papildomo jaudulio ir įtraukimo. Jie ne tik suteikia žaidėjams naujų sugebėjimų ir apdovanojimų, bet ir sukuria įdomių iššūkių bei strateginių pasirinkimų.

Įtraukdami šias funkcijas naudodami Python Arcade biblioteką, galite padaryti savo žaidimus malonesnius ir pagerinti bendrą žaidėjų žaidimų patirtį. Nepamirškite eksperimentuoti, kartoti ir atskleisti savo kūrybiškumą, kad sukurtumėte unikalius ir patrauklius papildymus ir kolekcionuojamus daiktus, kurie atitiktų jūsų žaidimo temą ir mechaniką.