Gi spillerne dine noe å plukke opp etter hvert som de går gjennom spillet ditt.

Power-ups og samleobjekter er viktige spillelementer som kan forbedre spillopplevelsen og legge til spenning til arkadespill. De gir spillere ytterligere evner, belønninger og utfordringer. Med arkadebiblioteket vil du kunne lage engasjerende spill med power-ups og samleobjekter på kort tid.

Lag et enkelt spill

Start med et grunnleggende oppsett hvor spilleren kan bevege seg i fire retninger (venstre, høyre, opp og ned) ved å bruke tastaturinngangene. Introduser i tillegg ett fiendeobjekt for å gi interaksjon i spillmiljøet.

Koden som brukes i denne artikkelen er tilgjengelig i denne GitHub-depot og er gratis for deg å bruke under MIT-lisensen.

Opprett en ny fil med navnet simple-game.py og legg til koden nedenfor:

import arkade

blå = arkade.farge. BLÅ
rød = arkade.farge. RØD
svart = arkade.farge. SVART
hvit = arkade.farge. HVIT
gul = arkade.farge. GUL
grønn = arkade.farge. GRØNN
oransje = arkade.farge. ORANSJE

klasseSpill(arkade. Vindu):

instagram viewer

def__i det__(selv, bredde, høyde):
super().__init__(bredde, høyde)
arcade.set_background_color (svart)

self.player = arkade. SpriteCircle(20, blå)
self.player.center_x = bredde // 2
self.player.center_y = høyde // 2

self.enemy = arkade. SpriteSolidColor(20, 20, rød)
self.enemy.center_x = bredde // 4
self.enemy.center_y = høyde // 4

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

defOppdater(selv, delta_tid):
sende

defon_key_press(selv, nøkkel, modifikatorer):
hvis nøkkel == arkade.nøkkel. VENSTRE:
self.player.center_x -= 10
elif nøkkel == arkade.nøkkel. IKKE SANT:
self.player.center_x += 10
elif nøkkel == arkade.nøkkel. OPP:
self.player.center_y += 10
elif nøkkel == arkade.nøkkel. NED:
self.player.center_y -= 10

defhoved-():
spill = spill(800, 600)
arcade.run()

hvis __navn__ == "__hoved__":
hoved()

Kjør denne koden, og du vil ha et grunnleggende spill med spillerbevegelse og et fiendeobjekt.

Opprette spillstater

For å inkludere power-ups og samleobjekter, må du etablere spilltilstander som poengsum og helse. Du kan administrere poengsum og helse ved hjelp av en egen variabel. Endre koden for å inkludere disse funksjonene. Spillerens helse vil avta når de kolliderer med fiendens gjenstand.

klasseSpill(arkade. Vindu):
def__i det__(selv, bredde, høyde):
super().__init__(bredde, høyde)

self.score = 0
selv.helse = 100

defon_draw(selv):
arcade.draw_text(f"Score: {selv.score}", 10, 10, hvit)
arcade.draw_text(f "Helse: {selv.helse}", 10, 30, hvit)

defOppdater(selv, delta_tid):
hvis arcade.check_for_collision (selv.spiller, selv.fiende):
selv.helse -= 10

hvis selv.helse <= 0:
self.game_over()

defspillet er over(selv):
# Legg til spill over logikk her
sende

Nå reduseres spillerens helse med 10 når den kolliderer med fienden, og poengsummen og helseverdiene vises på skjermen.

Legge til samleobjekter

Deretter lager du samleobjekter som vil øke spillerens poengsum med 10 når de samles inn. Disse samleobjektene vil ha forskjellige former for visuell variasjon. Opprett en ny fil med navnet collectibles.py og legg til koden med oppdateringen nedenfor:

klasseSpill(arkade. Vindu):
def__i det__(selv, bredde, høyde):
super().__init__(bredde, høyde)

self.collectibles = arkade. SpriteList()

til _ i område(5):
samleobjekt = arkade. SpriteSolidColor(20, 40, gul)
collectible.center_x = random.randint(0, bredde)
collectible.center_y = random.randint(0, høyde)
self.collectibles.append (samleobjekt)

defon_draw(selv):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
arcade.draw_text(f"Score: {selv.score}", 10, 10, hvit)
arcade.draw_text(f "Helse: {selv.helse}", 10, 30, hvit)

defOppdater(selv, delta_tid):
til samleobjekt i self.collectibles:
hvis arcade.check_for_collision (selv.spiller, samleobjekt):
self.score += 10
collectible.remove_from_sprite_lists()

Lag en liste over samleobjekter med fem forekomster, hver representert med et gult rektangel. Når spilleren kolliderer med et samleobjekt, øker poengsummen med 10, og samleobjektet fjernes fra spritelisten.

Legger til power-ups

Nå kan du legge til power-ups til spillet ditt. Når spilleren samler en power-up, vil et skjold dukke opp rundt dem i 10 sekunder. I løpet av denne tiden, hvis spilleren kolliderer med fienden, vil de ødelegge fienden. Opprett en ny fil med navnet power-ups.py og legg til koden med oppdateringen nedenfor:

klasseSpill(arkade. Vindu):
def__i det__(selv, bredde, høyde):
super().__init__(bredde, høyde)

self.power_up = arkade. SpriteSolidColor(50, 20, grønn)
self.power_up.center_x = random.randint(0, bredde)
self.power_up.center_y = random.randint(0, høyde)

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

defon_draw(selv):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
self.power_up.draw()
arcade.draw_text(f"Score: {selv.score}", 10, 10, hvit)
arcade.draw_text(f "Helse: {selv.helse}", 10, 30, hvit)

defOppdater(selv, delta_tid):
hvis arcade.check_for_collision (selv.spiller, selv.fiende):
hvisikke self.shield_active:
selv.helse -= 10
hvis selv.helse <= 0:
self.game_over()
ellers:
self.enemy.remove_from_sprite_lists()

hvis self.shield_active:
self.shield_timer += delta_time

hvis self.shield_timer >= self.shield_duration:
self.shield_active = Falsk
self.shield_timer = 0

til samleobjekt i self.collectibles:
hvis arcade.check_for_collision (selv.spiller, samleobjekt):
self.score += 10
collectible.remove_from_sprite_lists()

hvis arcade.check_for_collision (self.player, self.power_up):
self.shield_active = ekte
self.power_up.remove_from_sprite_lists()

Nedenfor er utgangen:

Inkludert tilleggsfunksjoner

Du kan forbedre power-ups og samleobjekter ytterligere ved å legge til tilleggsfunksjoner. Du kan for eksempel lage en timer-oppstart som forlenger spilletid når den samles inn. Opprett en ny fil med navnet timer-power-up.py og legg til koden med oppdateringen nedenfor:

klasseSpill(arkade. Vindu):
def__i det__(selv, bredde, høyde):
super().__init__(bredde, høyde)
arcade.set_background_color (svart)

self.player = arkade. SpriteCircle(20, blå)
# ...

self.timer_power_up = arkade. SpriteSolidColor(40, 20, oransje)
self.timer_power_up.center_x = random.randint(0, bredde)
self.timer_power_up.center_y = random.randint(0, høyde)

self.game_time = 60# Innledende spilletid i sekunder
self.timer_power_up_duration = 10

# ...

defOppdater(selv, delta_tid):
# ...

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

# ...

defhoved-():
spill = spill(800, 600)
arcade.run()

hvis __navn__ == "__hoved__":
hoved()

Beste praksis for power-ups og samleobjekter

Power-ups og samleobjekter spiller en avgjørende rolle for å forbedre spillopplevelsen til arkadespill. For å sikre at disse elementene er morsomme og godt integrert i spillet, er det viktig å følge noen beste fremgangsmåter:

Visuell klarhet og konsistens

Bruk distinkte og visuelt tiltalende sprites for power-ups og samleobjekter for å få dem til å skille seg ut fra andre spillelementer. Sørg for at utseendet til power-ups og samleobjekter stemmer overens med deres effekter og formål i spillet.

Oppretthold konsistens i design, fargevalg og størrelse for power-ups og samleobjekter gjennom hele spillet.

Balanse og utfordring

Juster sjeldenheten og fordelingen av power-ups og samleobjekter for å opprettholde en følelse av utfordring og belønning for spillerne. Unngå å overvelde spillere med for mange power-ups eller samleobjekter, da det kan redusere virkningen og spenningen ved å finne dem.

Balanser nøye effektiviteten og varigheten av power-ups for å forhindre at de blir for overveldende eller underveldende.

Tydelige indikatorer og tilbakemeldinger

Gi tydelige visuelle og lydindikatorer når spilleren samler en oppstart eller samleobjekt. Vis midlertidige visuelle effekter, for eksempel animasjoner eller partikler, for å angi aktiveringen av power-ups og deres varighet.

Utfordring-belønning forhold

Sørg for at power-ups og samleobjekter gir meningsfulle belønninger til spilleren, for eksempel økt poengsum, flere evner eller lengre spilletid. Juster vanskeligheten med å skaffe power-ups og samleobjekter med fordelene de tilbyr. Mer utfordrende oppgaver bør gi mer verdifulle belønninger.

Spilletesting og balansering

Spilltest spillet grundig for å se hvordan spillere samhandler med power-ups og samleobjekter. Bruk tilbakemeldinger fra spillere til å finjustere distribusjonen, varigheten og effektene av power-ups og samleobjekter for å skape en balansert og hyggelig opplevelse.

Ved å følge disse beste fremgangsmåtene kan du lage et fengslende og velbalansert power-up og samleobjekter som forbedrer spillopplevelsen og holder spillerne engasjert i arkadespillet ditt.

Gjør spill morsommere med power-ups og samleobjekter

Power-ups og samleobjekter gir et ekstra lag med spenning og engasjement til arkadespill. De gir ikke bare spillere nye evner og belønninger, men skaper også interessante utfordringer og strategiske valg.

Ved å inkludere disse funksjonene ved å bruke Python Arcade-biblioteket, kan du gjøre spillene dine morsommere og forbedre den generelle spillopplevelsen for spillerne dine. Husk å eksperimentere, gjenta og slippe løs kreativiteten din for å lage unike og fengslende power-ups og samleobjekter som stemmer overens med spillets tema og mekanikk.