Desolate Echo – Game Development Week 4

Förra veckan var inlämning av Gamedesign document som alla jobbade hårt på för att göra klart det som inte var färdigt än. En ändring vi gjorde med projektet var att byta namn från Colossal Core till Desolate Echo. Vi ansåg att Colossal Core inte längre stämde överens med vad vi gjort spelet till. Tidigare hade spelet fokuserat bara på kolossala bossar som man ska slåss mot i kärnan av en planet, vi ändrade båda dessa delar av spelet och samtidigt namnet. Det nya namnet handlar mer om att vara ensam i ett mörkt och trångt utrymme och endast höra ekot av sig själv. Från att handla om att döda kolossala bossar ändrade vi det till att döda en boss per bana och en massa små fiender längs vägen dit. Vi utökade också kartan med en del och har nu mycket mer små gångar och delar att utforska.

I programmeringsväg har jag själv suttit och jobbat med att kanonen på taket av skeppet ska följa musens position, det har gått sådär. Logiken är inte jätte svår, ta positionen på musen relativt till fönstret, ta positionen av skeppet och räkna ut vinkeln emellan dessa. Min första tanke var att använda sin, cos och tan för att få ut vinklarna. Jag ritade upp en fin bild som demonstrerar min tanke:Untitled

Så i klartext för att räkna ut vinkel c behöver man använda väldigt basic gymnasiematte. tan(c) = sidey/sidex, vilket i mitt exempel blir tan(c) = 3/5, tan^-1(3/5) = 80. Jag la till detta i projektet. Musens position updateras rätt relativt till fönstret och kanonen rör sig efter musen. Problemet jag hade först var att jag hade tagit positionen av skeppet på hela kartan, vilket ändras när man flyttar på sig. Så istället för det så hämtade jag hälften av fönstrets x och y värden för att räkna ut avståndet och vinkeln till musen därifrån istället. Jag gick ut på internet för att hitta ett alternativ på hur man kan lösa problemet. Några sa att kanonens sprite måste peka höger för setRotation()’s noll är till höger inte uppåt. Men det löste ju inget såklart. Sedan sa folk att jag skulle använda mig utav

atan2f(rhs.y, rhs.x) * 180.0f / PI

där rhs.y och rhs.x är sidex och sidey på bilden. (* 180 / PI) är för att konvertera från radian till grader. Detta funkade mycket bra och jag kunde gå vidare.

Jag arbetade med projektilerna för skeppet också vilket gick ganska smärtfritt. Jag kopierade lite funktioner från skeppets klass och la till i projektilklassen. Sedan la jag till samma kod för kanonen som fick den att följa musen i klassen och fixade en funktion som gav projektilen en hastighet och en vinkel som räknades ut med samma funktion som innan. Projektilobjektet skapas i turretklassen när spelaren klickar på vänster musknapp och läggs i en lista så spelaren kan skjuta flera gånger.

Jag fick också hjälp av Semih med ljuset som fick det att funka så vi kan visa upp det på alfapresentationen imorgon. Mycket snällt!

Det han gjorde var att skapa ett nytt lager ovanför det befintliga som allt i spelet ritas ut på. Sedan tar han och gör det övre lagret svart och sen laddapointLightTextures en textur in som är en vit-skinande-ljus-liknande bild. Lamptexturen ritas ut med en blending som gör så att det vita i texturen blir genomskinligt. Så skapades ljuset! c924b0fc6ffefb124b7f7393b6455dc5

About Erik Jigvall

2015 Programming