Vecka fyra: Level layout

Denna  vecka har jag jobbat på vårt spel Level layout. Den är långt ifrån optimal men det funkar iallafall.

Det första jag gjorde var att skappa en sf::texture samt en sf::sprite så att jag kunde lägga in själva bilden för bakgrunden, detta är ingen smart idé egentligen. En stor bild kräver mer plats och gör så att allt går långsammare. Det vore smartare och bättre om jag hade delat bilden i mindre delar. På så sätt hade jag även kunnat göra så att alla delar inte ladas in när spelet startar. Bara delarna runtomkring spelaren skulle i så fall laddas in. Jag hade dock inte tid att fixa det så det får bli läxa till helgen.

Utöver att ladda in en backgrund så har jag även fixat ett tilesystem. Tilesystemet kommer att avändas för att skapa en genomskinlig väg runt om spelplanen, för att förindra spelaren att åka till platser där han/hon inte hör hemma. Jag gjorde detta genom att använda mig av std::ifstream. Många känner nog igen detta från programmering 1 men den gör så att man kan läsa in data från andra filer. Så jag hämtar all data från mitt textdokument(map.txt) och de som hämtas är först vilken fil tiles teaxture ska hämtas ifrån. Jag lägger det i en sting(tileLocation) och säger sedan att tileTexture ska hämtas från tileLocation.

Detta följs av en while loop som kör så länge det finns data att hämta. I loopen skapar jag två charArray(x och y). För att få fram en tiletexture från måste man skriva på ett specielt sett i textdokumentet, t.ex. x,x. Det första x står för texturens position i x led och det andra x står för positionen i y led. Genom att skriva så här blir det enklare att läsa och först. Jag har även gjort så att minna chararrayer bara tar emot nummer, detta gjorde jag med hjälp av isdiget() som tittar om det det är ett nummer. Detta betyder att om det står x,x i textdokumentet så ska inget ritas ut. Om det är ett nummer så sätter jag in det i min sf::vector2i loadCounter som jag sedan använder för att rita ut alla tiles. När jag ritar ut tilesen så sätter jag även avståndet så att alla staplas på varande. Tile är en sf::sprite så jag kunde lätt använda funktionen SetPosition för att fixa det.

Som jag skrev tidigare i texten så finns det plats för förbättringar och om någon har något att säga kontakta mig gärna eller lämna en kommentar.

About Emil Wahlund

2015 Programming