Andke oma mängijatele midagi kaasa võtta, kui nad teie mängus edenevad.
Võimsused ja kogumisobjektid on olulised mänguelemendid, mis võivad mängukogemust täiustada ja arkaadmängudele põnevust lisada. Need pakuvad mängijatele täiendavaid võimeid, auhindu ja väljakutseid. Arkaadteegi abil saate kiiresti luua põnevaid mänge koos võimsuste ja kogumisobjektidega.
Looge lihtne mäng
Alustage põhiseadistusega, kus mängija saab liikuda neljas suunas (vasakule, paremale, üles ja alla), kasutades klaviatuuri sisendeid. Lisaks tutvustage üht vaenlase objekti, et pakkuda mängukeskkonnas suhtlemist.
Selles artiklis kasutatud kood on saadaval selles GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.
Looge uus fail nimega lihtne-mäng.py ja lisage allolev kood:
importida arkaad
sinine = arkaad.värv. SININE
punane = arkaad.värv. PUNANE
must = arkaad.värv. MUST
valge = arkaad.värv. VALGE
kollane = arkaad.värv. KOLLANE
roheline = arkaad.värv. ROHELINE
oranž = arkaad.värv. ORANŽklassMäng(arkaad. aken):
def__selles__(ise, laius, kõrgus):
super().__init__(laius, kõrgus)
arcade.set_background_color (must)ise.mängija = arkaad. SpriteCircle(20, sinine)
self.player.center_x = laius // 2
self.player.center_y = kõrgus // 2ise.vaenlane = arkaad. SpriteSolidColor(20, 20, punane)
self.enemy.center_x = laius // 4
self.enemy.center_y = kõrgus // 4defon_draw(ise):
arcade.start_render()
self.player.draw()
ise.vaenlane.draw()defvärskendada(ise, delta_aeg):
üle andmadefon_key_press(ise, võti, muutjad):
kui võti == arcade.key. VASAKULE:
self.player.center_x -= 10
elif võti == arcade.key. PAREMALE:
self.player.center_x += 10
elif võti == arcade.key. UP:
self.player.center_y += 10
elif võti == arcade.key. ALLA:
self.player.center_y -= 10defpeamine():
mäng = mäng(800, 600)
arcade.run()
kui __nimi__ == "__main__":
peamine ()
Käivitage see kood ja teil on põhimäng mängija liikumise ja vaenlase objektiga.
Mänguseisundite loomine
Võimsuste ja kogumisobjektide kaasamiseks peate määrama mängu olekud, nagu skoor ja tervis. Sa saad skoori hallata ja tervis, kasutades eraldi muutujat. Nende funktsioonide lisamiseks muutke koodi. Mängija tervis halveneb, kui ta põrkab kokku vaenlase objektiga.
klassMäng(arkaad. aken):
def__selles__(ise, laius, kõrgus):
super().__init__(laius, kõrgus)ise.skoor = 0
enese.tervis = 100defon_draw(ise):
arcade.draw_text(f"Skoor: {self.score}", 10, 10, valge)
arcade.draw_text(f"Tervis: {self.health}", 10, 30, valge)defvärskendada(ise, delta_aeg):
kui arcade.check_for_collision (self.player, self.enemy):
enese.tervis -= 10kui enese.tervis <= 0:
self.game_over()
defmäng läbi(ise):
# Lisage siia mäng loogikale
üle andma
Nüüd langeb mängija tervis vaenlasega kokkupõrkel 10 võrra ning ekraanile kuvatakse skoor ja tervisenäitajad.
Kogumisobjektide lisamine
Järgmiseks looge kogumisobjektid, mis suurendavad kogumisel mängija skoori 10 võrra. Need kogumisobjektid on visuaalse mitmekesisuse jaoks erineva kujuga. Looge uus fail nimega kogumisobjektid.py ja lisage kood koos alloleva värskendusega:
klassMäng(arkaad. aken):
def__selles__(ise, laius, kõrgus):
super().__init__(laius, kõrgus)ise.kollektsionäärid = arkaad. SpriteList()
jaoks _ sisse vahemik(5):
kogutav = arkaad. SpriteSolidColor(20, 40, kollane)
collectionible.center_x = random.randint(0, laius)
collectionible.center_y = random.randint(0, kõrgus)
self.colectibles.apend (kogutav)defon_draw(ise):
arcade.start_render()
self.player.draw()
ise.vaenlane.draw()
self.collectibles.draw()
arcade.draw_text(f"Skoor: {self.score}", 10, 10, valge)
arcade.draw_text(f"Tervis: {self.health}", 10, 30, valge)
defvärskendada(ise, delta_aeg):
jaoks kogutav sisse isekogutavad asjad:
kui arcade.check_for_collision (self.player, kogutav):
ise.skoor += 10
collectionible.remove_from_sprite_lists()
Koostage viie eksemplariga kogumisobjektide loend, millest igaüks on kujutatud kollase ristkülikuga. Kui mängija põrkab kokku kogumisobjektiga, suureneb tema punktisumma 10 võrra ja kogutav objekt eemaldatakse spraitide nimekirjast.
Võimsuste lisamine
Nüüd saate oma mängule võimsusi lisada. Kui mängija kogub võimsuse, ilmub nende ümber 10 sekundiks kilp. Selle aja jooksul, kui mängija põrkab vaenlasega kokku, nad hävitavad vaenlase. Looge uus fail nimega power-ups.py ja lisage kood koos alloleva värskendusega:
klassMäng(arkaad. aken):
def__selles__(ise, laius, kõrgus):
super().__init__(laius, kõrgus)self.power_up = arkaad. SpriteSolidColor(50, 20, roheline)
self.power_up.center_x = random.randint(0, laius)
self.power_up.center_y = random.randint(0, kõrgus)self.shield_active = Vale
self.shield_duration = 10
self.shield_timer = 0defon_draw(ise):
arcade.start_render()
self.player.draw()
ise.vaenlane.draw()
self.collectibles.draw()
self.power_up.draw()
arcade.draw_text(f"Skoor: {self.score}", 10, 10, valge)
arcade.draw_text(f"Tervis: {self.health}", 10, 30, valge)defvärskendada(ise, delta_aeg):
kui arcade.check_for_collision (self.player, self.enemy):
kuimitte self.shield_active:
enese.tervis -= 10
kui enese.tervis <= 0:
self.game_over()
muidu:
self.enemy.remove_from_sprite_lists()kui self.shield_active:
self.shield_timer += delta_timekui self.shield_timer >= self.shield_duration:
self.shield_active = Vale
self.shield_timer = 0jaoks kogutav sisse isekogutavad asjad:
kui arcade.check_for_collision (self.player, kogutav):
ise.skoor += 10
collectionible.remove_from_sprite_lists()
kui arcade.check_for_collision (self.player, self.power_up):
self.shield_active = Tõsi
self.power_up.remove_from_sprite_lists()
Allpool on väljund:
Kaasa arvatud lisafunktsioonid
Täiendavate funktsioonide lisamisega saate võimsuste ja kogumisobjektide süsteemi veelgi täiustada. Näiteks saate luua taimeriga sisselülitamise, mis pikendab kogumisel mänguaega. Looge uus fail nimega timer-power-up.py ja lisage kood koos alloleva värskendusega:
klassMäng(arkaad. aken):
def__selles__(ise, laius, kõrgus):
super().__init__(laius, kõrgus)
arcade.set_background_color (must)ise.mängija = arkaad. SpriteCircle(20, sinine)
# ...self.timer_power_up = arkaad. SpriteSolidColor(40, 20, oranž)
self.timer_power_up.center_x = random.randint(0, laius)
self.timer_power_up.center_y = random.randint(0, kõrgus)self.game_time = 60# Esialgne mänguaeg sekundites
self.timer_power_up_duration = 10# ...
defvärskendada(ise, delta_aeg):
# ...kui 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()# ...
defpeamine():
mäng = mäng(800, 600)
arcade.run()
kui __nimi__ == "__main__":
peamine ()
Võimsuste ja kogumisobjektide parimad tavad
Võimsustel ja kogumisobjektidel on arkaadmängude mängukogemuse parandamisel otsustav roll. Et need elemendid oleksid nauditavad ja mängu hästi integreeritud, on oluline järgida mõningaid parimaid tavasid.
Visuaalne selgus ja järjepidevus
Kasutage eraldiseisvaid ja visuaalselt atraktiivseid spraite võimsuste ja kogumisobjektide jaoks, et need teistest mänguelementidest eristuks. Veenduge, et lisaseadmete ja kogumisobjektide välimus oleks kooskõlas nende mõju ja eesmärgiga mängus.
Säilitage kogu mängu kujunduse, värvilahenduste ja suuruse järjepidevus lisaseadmete ja kogumisobjektide jaoks.
Tasakaal ja väljakutse
Reguleerige lisaseadmete ja kogumisobjektide haruldust ja jaotust, et säilitada mängijate väljakutse ja tasu. Vältige liiga paljude lisaseadmete või kogumisobjektidega mängijate ülekoormamist, kuna see võib vähendada nende leidmise mõju ja põnevust.
Tasakaalustage hoolikalt sisselülituste tõhusust ja kestust, et vältida nende liigset ülekoormust või ülekoormust.
Selged indikaatorid ja tagasiside
Pakkuge selgeid visuaalseid ja helilisi indikaatoreid, kui mängija kogub toiteallika või kogumisobjekti. Kuvage ajutised visuaalsed efektid, nagu animatsioonid või osakesed, mis tähistavad sisselülituste aktiveerimist ja nende kestust.
Väljakutse-preemia suhe
Veenduge, et jõuallikad ja kogumisobjektid pakuksid mängijale tähendusrikkaid hüvesid, nagu suurenenud punktisumma, lisavõimed või pikem mänguaeg. Viige jõuallikate ja kogumisobjektide hankimise raskused nende pakutavate eelistega. Keerulisemad ülesanded peaksid andma väärtuslikumaid tasusid.
Mängu testimine ja tasakaalustamine
Testige mängu põhjalikult, et jälgida, kuidas mängijad võimsuste ja kogumisobjektidega suhtlevad. Tasakaalustatud ja nauditava kogemuse loomiseks kasutage mängija tagasisidet, et viimistleda võimsuste ja kogumisobjektide jaotust, kestust ja efekte.
Neid parimaid tavasid järgides saate luua kütkestava ja hästi tasakaalustatud toite- ja kogumissüsteemi, mis täiustab mängukogemust ja hoiab mängijad teie arkaadmängus kaasas.
Muutke mängud lõbusamaks lisaseadmete ja kogumisobjektidega
Võimsused ja kogumisobjektid lisavad arkaadmängudele põnevust ja kaasahaaravust. Need mitte ainult ei paku mängijatele uusi võimeid ja hüvesid, vaid loovad ka huvitavaid väljakutseid ja strateegilisi valikuid.
Lisades need funktsioonid Python Arcade teegi abil, saate muuta oma mängud nauditavamaks ja parandada mängijate üldist mängukogemust. Ärge unustage katsetada, korrata ja vabastada oma loovus, et luua ainulaadseid ja põnevaid lisaseadmeid ja kogumisobjekte, mis sobivad teie mängu teema ja mehaanikaga.