Veckoreflektion – Blog 4 03/03-16
|
Hej och välkommen du nya läsare! Veckans uppgifter har verkligen satt mina kunskaper på prov. Under veckans gång har jag arbetat med att skapa en power-up som skulle vara en kanon som skjuter igenom alla fiender som den kommer i kontakt med. Jag har även jobbat med att skapa fler ljudeffekter inför BETA. Allt detta kommer att förklaras nedanför, så bear with me! OBS: Vi skrev om hela vårat system inför BETA-play testet och därför behövde jag lära mig det nya systemet som de andra programmerarna hade gjort. Att göra en sådan power-up för mig handlade inte om att hitta på något att skriva och sen hitta problem lösningar till uppkommande problem(kodmässigt). Utan det handlade om att förstå programmering, länka samman klasser, hitta samband i koden och strukturen för att få ett bredare perspektiv på hur det faktiskt fungerar. Så det första jag gjorde var att försöka förstå mig på hur det nya systemet fungerade, hur allt hängde ihop. Vilket inte var så lätt för en sådan oerfaren programmerare som mig. Jag fick ett tips från våran lead programmer att jag skulle titta på hur våran vanliga projektil-klass var uppbyggd. Jag fattade ingenting, jag satt som ett frågetecken i flera timmar. Efter mycket om och men så började jag göra en liknande klass med nästan identiska medlemsvariabler. Det jag gjorde var att göra två separata klasser, en för hur själva power-upen skulle fungera och en för projektilen. Power-up klassen skulle innehålla en spritemanager och en player reference för att veta vart projektilen senare skulle färdas ifrån. Därefter skapade jag de medlemsvariabler som var nödvändiga och skrev sedan in allt i cpp – filen. Projektil klassen var däremot lite knepigare. Jag skulle behöva ladda in ett spritesheet för kanonkulan och det hade jag aldrig gjort förut. Detta blev en utmaning problemmässigt eller hur man kan kalla det. Därför bestämde jag mig för att släppa spritesheeten och istället skapa en rotation för projektilen istället. Rotationen uppdateras i projektilens update funktion och fungerar så att rotationen uppdateras med delta tid, vilket ger att den roterar x-antal pixlar varje gång update koden körs. Att göra rotations funktionen skulle säkert spara mig 2 timmar av arbete för att försöka hitta en lösning på hur man laddar in spritesheets, vilket jag blev väldigt nöjd över att lyckas med. På ljudfronten fanns det en del ljud som behövdes göras. Dessa ljud innefattade skott ljud för både vanliga projektilen och kanon skottet, luftbubblor som spawnas, player hit ljud och så vidare. Som jag alltid gör när jag ska skapa en ljudeffekt så försöker jag återskapa hur man förväntar sig att den ljudeffekten kommer att låta. Om vi tar flintlås pistolen (pirat pistol) som exempel så förväntar man sig att höra ett knall ljud (ja det är ganska logiskt eftersom det är en pistol), men eftersom jag inte har en pistol så började jag med att spela in ett ljud när jag slår i bordet, därefter la jag till ett eko på detta för att få det att låta mer kraftfullt. Jag har använt denna metod i tidigare ljudeffekter som jag har gjort, så jag vet att det fungerar. Ljuden för att spawna luftbubblor gjorde jag genom att spela in ett flertal ”plopp” ljud och sedan höja varje ”plopp” en ton för att ljudet ska bli ljusare eftersom. Alla former av ljud gör jag helt själv med hjälp av saker i mitt rum eller med min mun. Musiken i spelet gör jag med fruity loops (FL Studio) och allt är skapat enbart av mig.
|