Enemy Spawn och Power Ups

SuburbiaEnemySpawn

Jag har gjort en Power Up klass och en manager för den klassen samt uppdaterat Enemy managern så att den skapar fiender en efter en i stället för alla på en gång som också kan bli justerad så att vi kan eventuellt bara ha en text fil med information som Enemy managern skapar fienderna ifrån.

Power Up klassen är uppbyggd på samma sätt som fiende klassen, bara att den har en annorlunda sprite och den åker bara neråt istället för sida till sida samt lagrar den olika enum typer. Power Up managern hanterar skapandet och lagringen av alla power ups samt ritningen, uppdateringen och förstörandet utav de. När spelaren kolliderar mot en power up blir typen av power up:en lagrad i en integer variabel, som sedan returneras när spelaren väljer att använda sin power up. Om spelaren plockar upp en ny power up när de inte har använt den gamla så ersätts den power up som spelaren kan aktivera med den nya eftersom power up managern bara har en variabel som håller koll på vilken power up man har tillgång till.

Jag har också skapat en ny struct i EnemyManagern som har variabler för olika skepps typer (som är enums), positioner i relation till planeten i grader och en intern klocka. Jag har sedan skapat en vector med flera utav dessa structer som har olika värden på dess variabler. Fiende skeppen skapas sedan med hjälp utav denna vector med structer och får de värden som varje struct hade. Anledningen till att vi hade bytt till denna metod för att skapa fiender istället för att bara skapa de i en for-loop är tvåfaldigt.

Den första anledningen är för att vi ville inte att fiende skeppen skulle skapas samtidigt utan att de skulle ha mellanrum vid när de skapades så att det skulle bli som en konstant inflöde av fienender istället för att bara vara en enda stor våg med fiender. Den andra anledningen till detta byte av fiende skapande var för att vi ville ha mer flexibilitet för när vi skapar fiende vågorna och bestämmer vilka fiender som kommer vart. I och med att vi använder en vector med structs som bara innehåller siffervärden för att skapa en fiende våg så kan vi väldigt enkelt ge dessa structs sina värden från en text fil som vi matar in i programmet. Då behöver vi bara ändra värden i själva text filen för att justera designen och svårighetsgraden på fiende vågorna istället för att öppna programmet, ändra det där och kompilera om, vilket ger oss mycket mer flexibilitet när det gäller finputsning för slutprodukten.

En reaktion på ”Enemy Spawn och Power Ups

  1. Bra skrivet! Man förstår din tankegång genom hela texten då du förklara vad, hur och varför. Smart tänkt också att fixa till enemy-managern tidigt så att det inte behövs fixa mer kod i framtiden. Att utnyttja en vector med structer för att enkelt kunna variera ”fiendervågornas” intensitet och estetik är även det väldigt listigt. Sen som du förklarade så är det mycket tråkigare samt svårare om alla fiender kom samtidigt som en vägg.

    Du förklarar även på samma sätt vad, hur och varför när det gäller din power up, vilket är bra. Att dens egna klass tar hand om både skapande och förstörandet av objektet, samt att spelaren kan plocka upp och använda sig utav den. Men även att man som spelare bara kan ha en power up i taget, annars så ersätts den äldre med den senaste.

    Dock något som skulle vara smart till nästa gång är att förklara lite mer genomgående vad alla olika termer betyder. Som programmerare har jag inga större svårigheter att förstå vad du har gjort, och för det mesta hur du har gjort det. Men om en som inte kan programmering skulle läsa detta, så skulle denne person förmodligen vara ganska förvirrad. Vad är en struct? Vector vadå? Enums? Tror att det skulle få alla läsare att enklare förstår exakt vad som händer, och varför du gör vad du har gjort!

    Gilla

Lämna en kommentar