torsdag 19 mars 2015

projektets ”sista”?

Välkommen till min blogg
Ja nu börjar det dra ihop sig till den slutgiltiga versionen av spelet och slutet av kursen.
Jag har lärt mig en hel del under den här tiden som jag kommer att ta med mig till nästa kurs.
Mycket har varit en stor uppförsbacke och många långa kvällar med problem som uppstår då jag inte riktigt har förstått kodstrukturen eller att jag testat mig fram till det som funkar. Det är tur att man har många runtomkring sig som är villiga att hjälpa till även om det är stressigt.
Nu vidare till vad jag har gjort i veckan! Jag har arbetat mest på bugfixar och knappar till pause menyn som är inne i ”gamestate”. Det är nog det jag kommer att prata om i det här blogginlägget.
Större delen av knapparna var redan klara i förra veckan och behövde bara mindre ändringar för att implementera den nya grafiken / bilderna för knapparna.

I pause menyn var knapparna nästan klara förra veckan med mindre bugs som behövde fixas, till exempel så var de inte hela tiden centrerade i mitten av skärmen, hur jag fixa det var att knapparna ”följer efter” spelaren. Det som händer är att när man trycker pause så blir de synliga och ändrar positionen till spelarens position. Sen har vi en smått genomskinlig bakgrund för att få spelaren att förstå när allt blir grått och pauseknapparan blir synliga så är spelet pausat.

Andra problem som uppstod var att spelet / update i gamestate inte blev pausat när vi trycker på ”esc” som är pauseknappen i vårat spel. Hur jag gjorde för att fixa till det var att Update i gamestate inta uppdaterades och enbart musen och knapparna uppdateras. När spelaren trycker på continue så Un-pausar man och ouit så återvänder man till menyn, några andra buggar som fortfarande återstår är att när man trycker på en knapp så kastas även projektilen / bumerangen i spelet, detta är för att vi bara läser av när knappen är nedtryckt och den fortsätter att mata in inputs när man håller in knappen och det är ca 3-5 uppdateringar på ett knapptryck så det uppstår då problem när man startar eller går ifrån pause i spelet. Med det avslutar jag veckans och projektets ”sista”? Blogg, på återseende!

Tack för visat intresse och hoppas att det var tillräckligt förståeligt för dig att läsa det här inlägget!
Med vänliga hälsningar

// Andreas Lundmark

torsdag 12 mars 2015

”GameOverState”

Den här veckan tänker jag skriva lite om hur jag tänkte när jag gjorde
”GameOverState” klassen och även lite om huvudmenyn då det är en och samma sak, bara i olika klasser.
”GameOverState” klassen påminner mycket om meny klassen  som jag gjorde förra veckan. Jag tog meny klassen som bas för att göra ”gameover”, när spelaren dör / blir fasttagen av fienden så ska spelaren se ”gameover” skärmen som är ett separat ”gamestate”.

”GameOverState” har för närvarande bara en backgrundsbild och en knapp som tar dig tillbaka till start menyn. Men i den slutliga versionen så kommer det finnas möjlighet att skriva in sitt namn om man har mer poäng än de topp 10 som har spelat tidigare. Eventuellt att det är i en separat skräm och sedan kommer man till ”scoreboard” som kan ta spelaren till huvudmenyn. Eftersom jag inte är riktigt klar så är det lite små finesser kvar, som till exempel när spelaren trycker på ”quit” från ”pause” menyn så blir det en bugg som gör att man inte har möjlighet att komma tillbaka till huvudmenyn. Det är en av buggarna som inte är fixade till beta visningen tyvärr.

Motgångar som jag har stött på är följande:
Att spelaren ska dö och sedan bryta ”Update” i ”Gamestate” för att komma till ”GameOverState” har inte riktigt fungerat fullt ut till en början. Jag löste det med lite hjälp genom att göra funktionen  med knapparna i ”gamestate” till en ”bool” som då i sin tur kan bryta” update” i ”gamestate”.
Genom att skriva ”return false” då spelaren dör eller om spelaren trycker på ”quit” i ”pausestate”.

Något mer som krånglade också när jag implementerade ”png” bilden, då jag helt enkelt gjorde en fel uträckning och fel beräkning på hur pass hög varje knapp var. Resultatet då det var fel blev att den tog med halva nästa knapp och enbart den första knappen såg bra ut. Jag löste det genom att dubbelkolla och skriva om beräkningen lite.

Problem med kollisionen var inte stora men en förskjutning av kollisionen var nödvändigt då  kollisionen blev för stor med de nuvarande knapparna. Problemet var att den lyste upp två knappar när du drog över de knapparna i mitten av huvudmenyn och ”GameOverState” menyn.
Jag löste genom att ta spritens bredd och höjd och sedan plussa på i x och y det som krävdes för att kollisionen sedan ska passa knappen.

Jag avslutar nu veckans blogg post, tack för visat intresse!
Med vänliga hälsningar..
//Andreas Lundmark

torsdag 5 mars 2015

Meny Knapperna.

Det jag tänker beskriva den här veckan är Menyknapparna som jag kodade.

Jag började med att göra en ny klass och i stort sett bara skriva av tidigare kod som jag behövde till menyknapparna. Jag försökte att skriva likadant som i andra klasser då det då blir lättare för gruppen att läsa och snabbt hitta i koden.

Meny kommer troligtvis att bestå av dessa sex olika knappar:
Start / Play. Som startar spelet och hoppar då in i gamestate.
Credits. Som bara byter bakgrundbild och visar våra namn, samt gör de andra knapparna osynliga.
Quit / exit. Som sedan gör de andra knapparna osynliga och gör ”Yes” och ”No” synliga.
CreditsReturn. Den här knappen kommer fram när man trycker på ”Credits” och ska ta spelaren tillbaka till start skärmen.
Yes. På den skärmen kommer spelet att fråga om du verkligen vill avsluta spelet och om du trycker på ja så avslutas spelet.
No. Om spelaren trycker på ”No” så går spelet tillbaka till att bara visa ”Start,Credits,Quit”

Meny knapparna har en hover effekt som är, när spelaren drar med musen över en knapp ska knappen byta bild / sprite. Till skillnad från föremålen som byter sprite när spelaren kommer nära föremålen så ska menyknappen byta sprite när musen är innanför knappen. Knappen är för tillfället 350x100 pixlar och har en placeholder sprite som är bara en blå bild när man inte håller över knappen och sen byter den till grön när man håller musen över knappen.
Mellanrummet mellan knapparna i lodrät riktning är för tillfället 50 pixlar.
Extra knappar som ”Yes”,”no” och ”CreditsReturn” är placerade på mitten av skärmen längst ned.

Problem som jag stötte på under utvecklingen av menyknapparna var att knapparna inte bytte bild då muspekaren drog över knappen, efter lite hjälp av en gruppmedlem insåg vi att ”MenuState” inte hade knapparnas ”update” i ”statets update”. Det löste jag genom att skriva:
”Start->Update(); ” och så vidare för alla knapparna i ”MenuStates Update” funktion.
Ett till problem var att jag inte satt ut positionen för alla kollisions boxar och då uppstod ett litet problem då alla boxar var på samma plats och snett ovanför den första meny knappen. Jag fixade problemet snabbt men det var ändå lite slarvigt av mig när jag skrev klassen.

Det som gick bra var att jag snabbt fick ihop knappklassen så att den fungerade även om inte just hover effekten fungerade så fungerade det ändå att trycka på knapparna.

Tack för visat intresse! Kom gärna med kommentarer och om jag missat någon viktig information eller något ni undrar över.

Hoppas alla får en bra helg!
// Andreas Lundmark