Giv dine spillere noget at hente, efterhånden som de kommer videre gennem dit spil.

Power-ups og samleobjekter er vigtige spilelementer, der kan forbedre gameplay-oplevelsen og tilføje spænding til arkadespil. De giver spillerne yderligere evner, belønninger og udfordringer. Med arkadebiblioteket vil du være i stand til at skabe engagerende spil med power-ups og samleobjekter på ingen tid.

Opret et simpelt spil

Start med en grundlæggende opsætning, hvor spilleren kan bevæge sig i fire retninger (venstre, højre, op og ned) ved hjælp af tastaturinput. Derudover skal du introducere et fjendeobjekt for at give interaktion i spilmiljøet.

Koden brugt i denne artikel er tilgængelig i denne GitHub-depot og er gratis for dig at bruge under MIT-licensen.

Opret en ny fil med navnet simple-game.py og tilføj nedenstående kode:

importere arkade

blå = arkade.farve. BLÅ
rød = arkade.farve. RØD
sort = arkade.farve. SORT
hvid = arkade.farve. HVID
gul = arkade.farve. GUL
grøn = arkade.farve. GRØN
orange = arkade.farve. ORANGE

instagram viewer

klasseSpil(arkade. Vindue):
def__i det__(selv, bredde, højde):
super().__init__(bredde, højde)
arcade.set_background_color (sort)

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

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

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

defopdatering(selv, delta_tid):
passere

defon_key_press(selv, nøgle, modifikatorer):
hvis nøgle == arkade.nøgle. VENSTRE:
self.player.center_x -= 10
elif nøgle == arkade.nøgle. HØJRE:
self.player.center_x += 10
elif nøgle == arkade.nøgle. OP:
self.player.center_y += 10
elif nøgle == arkade.nøgle. NED:
self.player.center_y -= 10

defvigtigste():
spil = spil(800, 600)
arcade.run()

hvis __navn__ == "__main__":
hoved()

Kør denne kode, og du vil have et grundlæggende spil med spillerbevægelse og et fjendeobjekt.

Oprettelse af spilstater

For at inkorporere power-ups og samleobjekter skal du etablere spiltilstande såsom score og sundhed. Du kan administrere score og sundhed ved hjælp af en separat variabel. Rediger koden for at inkludere disse funktioner. Spillerens helbred vil falde, når de kolliderer med fjendens objekt.

klasseSpil(arkade. Vindue):
def__i det__(selv, bredde, højde):
super().__init__(bredde, højde)

selv.score = 0
selv.sundhed = 100

defon_draw(selv):
arcade.draw_text(f"Score: {selv.score}", 10, 10, hvid)
arcade.draw_text(f"Sundhed: {selv.sundhed}", 10, 30, hvid)

defopdatering(selv, delta_tid):
hvis arcade.check_for_collision (selv.spiller, self.enmy):
selv.sundhed -= 10

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

defgame_over(selv):
# Tilføj spil over logik her
passere

Nu falder spillerens helbred med 10, når den kolliderer med fjenden, og score- og sundhedsværdierne vises på skærmen.

Tilføjelse af samleobjekter

Dernæst skal du oprette samleobjekter, der vil øge spillerens score med 10, når de indsamles. Disse samleobjekter vil have forskellige former for visuel variation. Opret en ny fil med navnet collectibles.py og tilføj koden med nedenstående opdatering:

klasseSpil(arkade. Vindue):
def__i det__(selv, bredde, højde):
super().__init__(bredde, højde)

self.collectibles = arkade. SpriteList()

til _ i rækkevidde(5):
samleobjekt = arkade. SpriteSolidColor(20, 40, gul)
collectible.center_x = random.randint(0, bredde)
collectible.center_y = random.randint(0, højde)
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, hvid)
arcade.draw_text(f"Sundhed: {selv.sundhed}", 10, 30, hvid)

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

Opret en liste over samleobjekter med fem forekomster, hver repræsenteret af et gult rektangel. Når spilleren kolliderer med et samleobjekt, øges deres score med 10, og samleobjektet fjernes fra spritelisten.

Tilføjelse af power-ups

Nu kan du tilføje power-ups til dit spil. Når spilleren samler en power-up, vil et skjold dukke op omkring dem i 10 sekunder. I løbet af denne tid, hvis spiller kolliderer med fjenden, vil de ødelægge fjenden. Opret en ny fil med navnet power-ups.py og tilføj koden med nedenstående opdatering:

klasseSpil(arkade. Vindue):
def__i det__(selv, bredde, højde):
super().__init__(bredde, højde)

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

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, hvid)
arcade.draw_text(f"Sundhed: {selv.sundhed}", 10, 30, hvid)

defopdatering(selv, delta_tid):
hvis arcade.check_for_collision (selv.spiller, self.enmy):
hvisikke self.shield_active:
selv.sundhed -= 10
hvis selv.sundhed <= 0:
self.game_over()
andet:
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 = Rigtigt
self.power_up.remove_from_sprite_lists()

Nedenfor er output:

Inklusiv yderligere funktioner

Du kan yderligere forbedre power-ups og samleobjekter ved at tilføje yderligere funktioner. For eksempel kan du oprette en timer-power-up, der forlænger spilletid, når den indsamles. Opret en ny fil med navnet timer-power-up.py og tilføj koden med nedenstående opdatering:

klasseSpil(arkade. Vindue):
def__i det__(selv, bredde, højde):
super().__init__(bredde, højde)
arcade.set_background_color (sort)

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

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

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

# ...

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

# ...

defvigtigste():
spil = spil(800, 600)
arcade.run()

hvis __navn__ == "__main__":
hoved()

Bedste praksis for power-ups og samleobjekter

Power-ups og samleobjekter spiller en afgørende rolle i at forbedre spiloplevelsen i arkadespil. For at sikre, at disse elementer er sjove og velintegrerede i spillet, er det vigtigt at følge nogle bedste fremgangsmåder:

Visuel klarhed og konsistens

Brug distinkte og visuelt tiltalende sprites til power-ups og samleobjekter for at få dem til at skille sig ud fra andre spilelementer. Sørg for, at udseendet af power-ups og samleobjekter stemmer overens med deres effekter og formål i spillet.

Bevar ensartet design, farveskemaer og størrelse for power-ups og samleobjekter gennem hele spillet.

Balance og udfordring

Juster sjældenheden og fordelingen af ​​power-ups og samleobjekter for at bevare en følelse af udfordring og belønning for spillerne. Undgå at overvælde spillere med for mange power-ups eller samleobjekter, da det kan mindske virkningen og spændingen ved at finde dem.

Afbalancer omhyggeligt effektiviteten og varigheden af ​​power-ups for at forhindre dem i at blive for overvældende eller undervældende.

Tydelige indikatorer og feedback

Giv klare visuelle og lydindikatorer, når afspilleren samler en power-up eller samleobjekt. Vis midlertidige visuelle effekter, såsom animationer eller partikler, for at angive aktiveringen af ​​power-ups og deres varighed.

Udfordring-belønning forhold

Sørg for, at power-ups og samleobjekter giver meningsfulde belønninger til spilleren, såsom øget score, yderligere evner eller forlænget spilletid. Tilpas vanskeligheden ved at få power-ups og samleobjekter med de fordele, de tilbyder. Mere udfordrende opgaver burde give mere værdifulde belønninger.

Legetest og balancering

Spiltest spillet grundigt for at observere, hvordan spillere interagerer med power-ups og samleobjekter. Brug spillerfeedback til at finjustere distributionen, varigheden og effekter af power-ups og samleobjekter for at skabe en afbalanceret og fornøjelig oplevelse.

Ved at følge disse bedste praksisser kan du skabe et fængslende og velafbalanceret power-up og samleobjekter, der forbedrer gameplay-oplevelsen og holder spillerne engageret i dit arkadespil.

Gør spil sjovere med power-ups og samleobjekter

Power-ups og samleobjekter tilføjer et ekstra lag af spænding og engagement til arkadespil. De giver ikke kun spillere nye evner og belønninger, men skaber også interessante udfordringer og strategiske valg.

Ved at inkorporere disse funktioner ved hjælp af Python Arcade-biblioteket kan du gøre dine spil sjovere og forbedre den overordnede spiloplevelse for dine spillere. Husk at eksperimentere, gentage og slippe din kreativitet løs for at skabe unikke og fængslende power-ups og samleobjekter, der stemmer overens med dit spils tema og mekanik.