Ge dina spelare något att hämta när de går vidare genom ditt spel.

Power-ups och samlarföremål är viktiga spelelement som kan förbättra spelupplevelsen och lägga till spänning till arkadspel. De ger spelare ytterligare förmågor, belöningar och utmaningar. Med arkadbiblioteket kommer du att kunna skapa engagerande spel med power-ups och samlarföremål på nolltid.

Skapa ett enkelt spel

Börja med en grundläggande inställning där spelaren kan röra sig i fyra riktningar (vänster, höger, upp och ner) med tangentbordsingångarna. Dessutom, introducera ett fiendeobjekt för att ge interaktion i spelmiljön.

Koden som används i den här artikeln är tillgänglig i denna GitHub-förråd och är gratis för dig att använda under MIT-licensen.

Skapa en ny fil med namnet simple-game.py och lägg till koden nedan:

importera arkad

blå = arkad.färg. BLÅ
röd = arkad.färg. RÖD
svart = arkad.färg. SVART
vit = arkad.färg. VIT
gul = arkad.färg. GUL
grön = arkad.färg. GRÖN
orange = arkad.färg. ORANGE

klassSpel(arkad. Fönster):
def__i det__(själv, bredd, höjd):
super().__init__(bredd, höjd)
arcade.set_background_color (svart)

instagram viewer

self.player = arkad. SpriteCircle(20, blå)
self.player.center_x = bredd // 2
self.player.center_y = höjd // 2

själv.fiende = arkad. SpriteSolidColor(20, 20, röd)
self.enemy.center_x = bredd // 4
self.enemy.center_y = höjd // 4

defon_draw(själv):
arcade.start_render()
self.player.draw()
self.enemy.draw()

defuppdatering(själv, delta_tid):
passera

defon_key_press(själv, nyckel, modifierare):
om nyckel == arkad.nyckel. VÄNSTER:
self.player.center_x -= 10
elif nyckel == arkad.nyckel. HÖGER:
self.player.center_x += 10
elif nyckel == arkad.nyckel. UPP:
self.player.center_y += 10
elif nyckel == arkad.nyckel. NER:
self.player.center_y -= 10

defhuvud():
spel = spel(800, 600)
arcade.run()

om __namn__ == "__huvud__":
main()

Kör den här koden så får du ett grundläggande spel med spelarrörelse och ett fiendeobjekt.

Skapa spelstater

För att införliva power-ups och samlarföremål måste du fastställa speltillstånd som poäng och hälsa. Du kan hantera poäng och hälsa med hjälp av en separat variabel. Ändra koden för att inkludera dessa funktioner. Spelarens hälsa kommer att minska när de kolliderar med fiendens föremål.

klassSpel(arkad. Fönster):
def__i det__(själv, bredd, höjd):
super().__init__(bredd, höjd)

self.score = 0
själv.hälsa = 100

defon_draw(själv):
arcade.draw_text(f"Betyg: {self.score}", 10, 10, vit)
arcade.draw_text(f"Hälsa: {självhälsa}", 10, 30, vit)

defuppdatering(själv, delta_tid):
om arcade.check_for_collision (self.player, self.enemy):
självhälsa -= 10

om självhälsa <= 0:
self.game_over()

defgame_over(själv):
# Lägg till spel över logik här
passera

Nu minskar spelarens hälsa med 10 när den kolliderar med fienden, och poängen och hälsovärdena visas på skärmen.

Lägga till samlarföremål

Skapa sedan samlarföremål som kommer att öka spelarens poäng med 10 när de samlas in. Dessa samlarföremål kommer att ha olika former för visuell variation. Skapa en ny fil med namnet collectibles.py och lägg till koden med uppdateringen nedan:

klassSpel(arkad. Fönster):
def__i det__(själv, bredd, höjd):
super().__init__(bredd, höjd)

self.collectibles = arkad. SpriteList()

för _ i räckvidd(5):
samlarobjekt = arkad. SpriteSolidColor(20, 40, gul)
collectible.center_x = random.randint(0, bredd)
collectible.center_y = random.randint(0, höjd)
self.collectibles.append (samlarobjekt)

defon_draw(själv):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
arcade.draw_text(f"Betyg: {self.score}", 10, 10, vit)
arcade.draw_text(f"Hälsa: {självhälsa}", 10, 30, vit)

defuppdatering(själv, delta_tid):
för samlarobjekt i self.collectibles:
om arcade.check_for_collision (self.player, collectible):
self.score += 10
collectible.remove_from_sprite_lists()

Skapa en lista över samlarobjekt med fem instanser, var och en representerad av en gul rektangel. När spelaren kolliderar med ett samlarobjekt, ökar deras poäng med 10, och samlarobjektet tas bort från spritelistan.

Lägger till power-ups

Nu kan du lägga till power-ups till ditt spel. När spelaren samlar in en power-up kommer en sköld att dyka upp runt dem i 10 sekunder. Under denna tid, om spelaren kolliderar med fienden, kommer de att förgöra fienden. Skapa en ny fil med namnet power-ups.py och lägg till koden med uppdateringen nedan:

klassSpel(arkad. Fönster):
def__i det__(själv, bredd, höjd):
super().__init__(bredd, höjd)

self.power_up = arkad. SpriteSolidColor(50, 20, grön)
self.power_up.center_x = random.randint(0, bredd)
self.power_up.center_y = random.randint(0, höjd)

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

defon_draw(själv):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
self.power_up.draw()
arcade.draw_text(f"Betyg: {self.score}", 10, 10, vit)
arcade.draw_text(f"Hälsa: {självhälsa}", 10, 30, vit)

defuppdatering(själv, delta_tid):
om arcade.check_for_collision (self.player, self.enemy):
ominte self.shield_active:
självhälsa -= 10
om självhälsa <= 0:
self.game_over()
annan:
self.enemy.remove_from_sprite_lists()

om self.shield_active:
self.shield_timer += delta_tid

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

för samlarobjekt i self.collectibles:
om arcade.check_for_collision (self.player, collectible):
self.score += 10
collectible.remove_from_sprite_lists()

om arcade.check_for_collision (self.player, self.power_up):
self.shield_active = Sann
self.power_up.remove_from_sprite_lists()

Nedan är utgången:

Inklusive ytterligare funktioner

Du kan förbättra power-ups och samlarföremålssystemet ytterligare genom att lägga till ytterligare funktioner. Du kan till exempel skapa en timerstart som förlänger speltiden när den samlas in. Skapa en ny fil med namnet timer-power-up.py och lägg till koden med uppdateringen nedan:

klassSpel(arkad. Fönster):
def__i det__(själv, bredd, höjd):
super().__init__(bredd, höjd)
arcade.set_background_color (svart)

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

self.timer_power_up = arkad. SpriteSolidColor(40, 20, orange)
self.timer_power_up.center_x = random.randint(0, bredd)
self.timer_power_up.center_y = random.randint(0, höjd)

self.game_time = 60# Inledande speltid i sekunder
self.timer_power_up_duration = 10

# ...

defuppdatering(själv, delta_tid):
# ...

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

# ...

defhuvud():
spel = spel(800, 600)
arcade.run()

om __namn__ == "__huvud__":
main()

Bästa metoder för power-ups och samlarföremål

Power-ups och samlarföremål spelar en avgörande roll för att förbättra spelupplevelsen i arkadspel. För att säkerställa att dessa element är roliga och välintegrerade i spelet är det viktigt att följa några bästa praxis:

Visuell klarhet och konsistens

Använd distinkta och visuellt tilltalande sprites för power-ups och samlarföremål för att få dem att sticka ut från andra spelelement. Se till att utseendet på power-ups och samlarföremål stämmer överens med deras effekter och syfte i spelet.

Behåll konsistens i design, färgscheman och storlek för power-ups och samlarföremål genom hela spelet.

Balans och utmaning

Justera sällsyntheten och fördelningen av power-ups och samlarföremål för att behålla en känsla av utmaning och belöning för spelarna. Undvik överväldigande spelare med för många power-ups eller samlarföremål, eftersom det kan minska effekten och spänningen av att hitta dem.

Balansera noggrant effektiviteten och varaktigheten av power-ups för att förhindra att de blir för överväldigande eller underväldigande.

Tydliga indikatorer och feedback

Ge tydliga visuella och ljudindikatorer när spelaren samlar in en power-up eller samlarobjekt. Visa tillfälliga visuella effekter, såsom animationer eller partiklar, för att beteckna aktiveringen av power-ups och deras varaktighet.

Relation mellan utmaning och belöning

Se till att power-ups och samlarföremål ger betydelsefulla belöningar till spelaren, såsom ökad poäng, ytterligare förmågor eller förlängd speltid. Anpassa svårigheten att få power-ups och samlarföremål med fördelarna de erbjuder. Mer utmanande uppgifter borde ge mer värdefulla belöningar.

Speltestning och balansering

Speltesta spelet utförligt för att observera hur spelare interagerar med power-ups och samlarföremål. Använd spelarfeedback för att finjustera distributionen, varaktigheten och effekterna av power-ups och samlarföremål för att skapa en balanserad och njutbar upplevelse.

Genom att följa dessa bästa metoder kan du skapa ett fängslande och välbalanserat power-up och samlarföremålssystem som förbättrar spelupplevelsen och håller spelarna engagerade i ditt arkadspel.

Gör spel roligare med power-ups och samlarföremål

Power-ups och samlarföremål lägger till ett extra lager av spänning och engagemang till arkadspel. De ger inte bara spelare nya förmågor och belöningar utan skapar också intressanta utmaningar och strategiska val.

Genom att införliva dessa funktioner med Python Arcade-biblioteket kan du göra dina spel roligare och förbättra den övergripande spelupplevelsen för dina spelare. Kom ihåg att experimentera, iterera och släpp lös din kreativitet för att skapa unika och fängslande power-ups och samlarföremål som passar ditt spels tema och mekanik.