Vecka fem: Power-up shield

Denna veckas artefakt har varit våran power up shield. Skölden är en utav de tre power ups som finns i vårt spel Space Giraffa. Skölden fungerar som en stjärna i spelet mario world, man plockar upp den och tar ingen skada ifrån fiender eller deras projektiler.

Jag började det hela med att skapa klassen PowerupShield, vars objekt spelaren ser och kan plocka upp i spelet. Det enda dessa objekt behöver är en x och y position, hastighet i X led, en kollisions box, ett enum som visar vilket objekt denna power up är samt en bild som grafiskt visar spelaren vilket objekt det är. Anledningen till att det endast behövs en hastighet i X led och inte i Y led är på grund av att spelet är en side scroller som scrollas i X led. Vad som kanske läggs till senare i utvecklingen är att alla power ups svajar upp och ner i en harmonisk takt, för att göra den mer lockande.

När väl detta var gjort så börja jag implementera power upen in i våran Entity Manager klass. Jag var tvungen att ändra på ett par ställen i koden, då vi inte hade, inför alphan, anpassat systemet till att hantera mer än en power up. Till exempel så blev våran Shotgun Lightning  vector en Power up vector som tar in alla power ups istället för att endast ta in Ligtning Shotgun objekt. Ett annat ställe som ändrades var i kollisionen mellan spelaren och de objekt i power up vectorn. Vi hade nämligen innan endast två stadier för spelaren när det gäller power ups, och det var på eller av. Detta ändrades till att spelarens giraff

sköld
Power up shield

objekt tar in enumet ifrån den power up som hen kolliderar med och behåller den som en variabel för att hålla reda på vilken power up som spelaren har aktiverad. Detta ledde också till att ändringar blev tvungna att göras i giraff klassen, för att få det att fungera med flera power ups. Så nu är power up systemet samt skjutnings systemet uppbyggd på if satser som håller koll på enumet ifrån power upen. Det sista som behövde ändras i giraff klassen var att en bubbla skulle ritas ut framför spelaren, som då symboliserar skölden som är aktiverad.  Det sista som behövdes göra för att få power upen att fungera korrekt var att ha en if sats vid kollisions checken mellan fiende projektiler och spelaren. Här tittas det om skölden är aktiverad eller inte innan det avgörs om det är ‘Game Over’ eller inte.

Och slutligen så behövde våran GameState få reda på vilken power up som är aktiverad för att visa upp i GUI:t för spelaren. Detta fick jag sitta med ett tag för att errors dök upp när jag försökte starta programmet, fastän det inte fanns några syntax errors eller något som såg konstigt ut. Vad som var lösningen till detta var att det inte räckte med att forward declare Entity, utan jag var tvungen att inkludera hela h filen. Detta var troligtvis det som var det svåraste med hela artefakten, och det som jag lärde mig mest utav.

gui
Bild på GUI:t
Annonser
Vecka fem: Power-up shield

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut /  Ändra )

Google+-foto

Du kommenterar med ditt Google+-konto. Logga ut /  Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut /  Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut /  Ändra )

w

Ansluter till %s