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.

About Arash Affra Bakhtiari

2015 Programming