Kategoriarkiv: Okategoriserade

Mole Munch – Dev log 5

I det här inlägget ska jag skriva om hur jag har lagt in feedback till spelaren i form av Ui.

På bilden nedan kan man se hur vårat Ui ser ut när man spelar. Längst ner till vänster av Ui’t finns det två mätare. Ena mätaren räknar antal ”Speed Powerups” som spelaren har tagit, och den andra räknar antal ”Vision Powerups” som spelaren har tagit. Mätaren går sedan upp och ner beroende på hur många som är tagna. Till höger om mätarna så ser ni antalet stenar som spelaren håller i. Om spelaren kastar iväg en sten så ändras spriten till en tom sten sprite. På varje bana finns det ett antal prisbelönta meloner som spelaren ska äta upp. Målet med varje bana är att plocka upp alla meloner. På Ui’t så presenteras detta genom att vi målar ut antal meloner som spelaren tagit, och antal meloner som är kvar på kartan. Just nu har spelaren tagit två meloner och har fyra kvar innan banan är slut. Poängen och multiplikatorn till höger och melonerna är gjorda på ett annorlunda sätt. Poängen börjar som en ”int”, ett värde som håller i heltal. Jag gjorde sedan om int värdet till en ”string”, ett värde som håller i en text. Sedan kunde jag rita ut texten på skärmen. blog#5

Detta är vår startskärm som jag har skapat, jag räknar med den som Ui eftersom den är gjord på ett liknande sätt. Startskärmen består främst av flera olika bilder. Den första bilden är bakgrundsbilden, i denna ingår bakgrunden plus en tom tavla. Eftersom att tavlan ska vara med i alla olika alternativ så kan den lika gärna vara med på bakgrundsbilden. På tavlan ligger sedan fem olika bilder. En bild för varje knapp plus en titeltext för att visa för spelaren vilken meny hen är i. Man navigerar genom knapparna med pil upp och pil ner, vi valde att inte navigera med en mus eftersom att vi inte använder någon mus i resten av spelet. Navigationen mellan knapparna är gjorda med ett int värde. Int värdet adderas med ett ifall man trycker pil upp och subtraheras med ett ifall spelaren klickar pil ner. Ifall värdet är till exempel tre så skulle ”CREDITS” knappen lysa upp grön. I detta fallet är värdet ett då ”PLAY” knappen lyser. Sättet jag gjorde markeringen på var att spriten ändrades beroende på vad värdet var. blog#5,2

Om spelaren väljer att klicka sig in på manual så kommer denna tavlan upp lokaliserat till höger av skärmen. Tavlan är just nu bara en enkel sprite. Men vi ska sedan använda samma tavla för att skriva highscore och liknande när man väljer vilken bana man ska spela. Jag har också lagt till ett alpha värde på tavlan så att man ser igenom den lite. Detta ser man även bättre om man kollar på fönstret av ladan. Alpha värdet lade jag till för att tavlan inte ska kännas så inklistrad. Alpha värdet går att implementera direkt när man skapar bilden ifall man sparar den till en png, men är väldigt lätt att fixa i kod.

blog#5,3

Mole Munch – Dev log 4

Den här veckan har jag jobbat på att få bort alla minnesluckor som vi hade i vårat spel. En minneslucka är när man lagrar minne på ”heap” minnet. I Vårat spel så skapades minnesläckor väldigt ofta. Varje gång vi gjorde ett nytt objekt så skapades minnesläckor. Så när vi i början av spelet skapade 50 olika objekt som till exempel jordgubbar och mullvaden så uppkom flera minnesläckor. På bilden nedan ser man flera objekt i spelet. Till höger om mullvaden finns jordgubbsplantor, några av jordgubbsplantorna är redan tagna av mullvaden. När mullvaden tagit en jordgubbsplanta så kan man ta bort den. I vårat fall så sätter vi jordgubbsplantan till osynlig och ej aktiv. För att sedan ta bort alla objekt i spelets dekonstruktor. Du kan läsa mer om vår dekonstruktor längre ner i texten.

Blog#1För att ta bort minnesläckor så måste man ta bort objekten som man skapat. Oftast tar man bort objekten när de inte längre ska vara med i spelet. Man kan som i förra exemplet ta bort objektet direkt när det försvinner ur spelet. Eller så kan man ta bort alla objekt i spelets dekonstruktor. En dekonstruktor är en funktion som kallas automatiskt när ett objekt tas bort. När spelet körs så är spelet i ett så kallat ”Game state”. När spelet är slut, eller när ”Game state” är över, så kallas dens dekonstruktor. Därför så var det där som jag skulle ta bort alla objekt.

För att ha struktur i vårat projekt så har vi lagt in alla våra objekt i olika listor. Till exempel så är alla våra grönsaker i samma lista. Så i vår dekonstruktor kunde jag gå igenom den här listan, kolla vilka objekt som fortfarande var aktiva, sedan ta bort dem från ”heap” minnet. Detta gjorde jag för varje lista i spelet, men också för vissa andra objekt som skapats på andra sätt utanför listorna.

För att hitta vart alla minnesläckor skapades så använde jag mig av ett program som heter ”Visual Leak Detector”. Detta programmet kan vara ett av de svåraste program jag någonsin arbetat med. Det första problemet uppstod när jag skulle installera det. Jag installerade version 2.3 av programmet, då fick jag feedback som berättade att jag inte hade en enda minneslucka i spelet. Eftersom jag visste att jag hade minnesläckor i spelet så hörde jag med några andra som går samma kurs, och då fick jag reda på att han använde version 2.4rc2 av programmet. Efter flera problem med att installera programmet med rätt version så fick jag det äntligen att fungera. När programmet till slut var installerat så fungerade det väldigt bra, man kunde lätt se var i koden som minnesläckan skapades, och sedan var det bara att ta bort det som beskrivet tidigare i texten.