Vecka 4

Den här veckan har handlat mycket om att få färdigt spelet i ett spelbart skick tills betan. De mesta finns nu i spelet men det känns fortfarande som det finns massor som behöver fixas, sättas ihop, finslipas etc. Något som knappt tidigare existerat och som vi fått mycket kritik för att vi inte prioriterat är feedbacken i spelet, d.v.s. att det händer saker men det är mycket svårt för spelaren att uppfatta detta.

Förutom att fixa allt ljud så behövde vi en lösning för hur man skulle kunna hålla koll på vilka sektorer (delar av spelplanen) som var under attack då man ju bara kan se en sektor åt gången. Innan hade vi bara en quickfix för detta som var en text som dök upp i mitten av skärmen när den andra sektorn var under attack men då vi implementerat ytterligare två sektorer denna veckan kändes det som det var dags för en bättre lösning.

Därför har jag gjort en s.k. ”minimap” denna veckan. Det första frågetecknet som uppstod var vart ska den få plats? Då vi inte har spelet i fullscreen och vi beslutat oss för fortsätta utan fullscreen då detta skulle ta för mycket tid för både grafiker och programmerare att ändra så fanns det inte så mycket plats kvar, speciellt inte då vi bestämt att flytta på vissa HUD-element och ha den viktiga faktan i botten av skärmen. Därför så skapade jag ett till fönster som kommer upp när man man tryckt ”play” i startmenyn som man kan se på bilden. Då jag inte gjort någon minimap förut så började jag laborera lite med rektanglar och sprites och provade mig fram. Jag gjorde fyra nya sprites för varje bakgrund och sen skalade jag ner dom och ritade ut dom på det nya fönstret. Efter det testade jag att rotera några av sprites:en och ritade även ut en cirkel bakom dom så att man skulle få känslan av planeten och blev ganska nöjd med resultatet.

Nästa steg var att få minimap:en att rotera beroende på vilken sektor man kollade på för tillfället. Det slog mig då att det hade vart både smidigare och lättare med bara en sprite som roterade istället för fyra. Därför så tog jag en printscreen på kartan och använde den istället. Där vi i spelloopen ändrar sektor beroende på knapptryck så använde jag setRotation på sprite:en och setPosition då man behövde ändra positionen när man roterat för att den skulle hamna rätt i fönstret.

Då hade jag en minimap. Nu var det dags att fixa så man på den kunde se vilken sektor som blev attackerad på den. Där hade jag användning för rektanglarna som jag laborerat med i början. På samma position som bakgrunderna i spriten hamnade så satte jag en rektangel över i samma storlek. Dessa rektanglar är transparenta med en färgad ”border”. Sen i spelloopen så loopar jag igenom våra fiende vektorer, kollar fiendernas position med hjälp av if-satser och befinner de sig halvvägs på väg mot planeten i respektive sektor så blir motsvarande rektangels border röd färgat. Annars är den grön. På samma ställe som jag satte rotation och position för bakrundsspriten flyttar jag även rektanglarna med setPosition så att rätt rektangel hamnar på rätt ställe när man byter sektor. Slutligen så lade jag till en siffra för varje sektor som flyttas på samma sätt som rektanglarna vid rotation och en svart rektangel med transparans för att förtydlga att den sektorn övererst i minimapen är den man kollar på just nu.

Minimapen är ännu inte färdig, vi ska fixa en finare bakgrundsbild t.ex. där himlarna och marken i sektorerna smälter ihop. Det kan hända att en del till funktioner tillkommer och att ändringar görs, men detta är det som finns färdigt än så länge för minimap:en.

About Mathias Henningsson

2015 Programming