4. Moment04 - Gamestates och externa klasser

Spelet fungerar nu förhoppningsvis ganska så bra. Men för att få till en bra upplevelse av spelet så gäller det att vi kan rama in spelet på ett bättre sätt med en kontrollerad start och sedan att applikationen inte avslutas så fort vi dör.

4.1 Gamestates

I bokens kapitel 8 så är det dags att strukturera om koden igen. Detta beror på att ett färdigt spel innehåller fler delar än själva spelet, det kan/bör innehålla en välkomstsida, någon form av meny, kanske en highscorelista osv. I detta moment går tutorialen igenom just detta. Dessutom kommer det med start nu förberedas för en del eget arbete. Författaren ger förslag på saker som bör göras men som han inte går igenom utan det är saker som du troligtvis kan lösa på egen hand med de kunskaper du redan har. Var extra noggrann här med att kommentera och dokumentera det arbetet du gör. Ta också regelbundna säkerhetskopior på hela projektet så är det lättare att återskapa till en tidigare punkt där ditt projekt fungerade.

Att lägga till egna saker är inget krav men det är bra träning att kunna göra detta och det kommer också ge dig bättre förutsättningar om du skall bygga ett eget spel som slutprojekt i kursen. Kortfattat kan man säga att om du vill klara av kursen så behövs inga egna utbyggnader. Om du vill sträva efter ett högre betyg så kommer ud tjäna på en högre förståelse samt fler och vassare egna utbyggnader.

Uppgift gamestats

När du är klar med kapitel 8 så är koden säkert rörig igen, så gå igenom koden, snygga till, kommentera de saker du har gjort medan du kommer ihåg vad du har gjort. Spara en kopia som innehåller allt som fungerar så här långt så kan du jobba vidare med en kopia i nästa kapitel. Skulle något bli väldigt fel i nästa del så kan du enkelt börja om från ett fungerande projekt istället för att behöva felsöka allt för länge.

Extrauppgift gamestats

Här finns det en extrauppgift kopplad till momentet för den som vill jobba mer och föbereda sig inför slutprojektet.

4.2 HighScore

Det har blivit dags att jobba lite med externa klasser. En extern klass är en klass som är skriven av någon annan än dig. Till boken som vi använder oss av när vi bygger vårt spel så finns det en guide till hur du skall bygga in en klass som lagrar HighScore och där vi dessutom skall lagra dessa i en fil så att det går att tävla mot de spelare som redan har spelat.

Börja med att ladda ner dessa två filer;

Följ sedan guiden och skapa en applikation som endast har till syfte att skapa en highscore-lista som kan sparas i fil. Bygg gärna detta som en egen applikation först för att få allt att fungera som det är tänkt.

Uppgift externa klasser

Beroende på om du endast följde guiden eller om du sammanfogade projekten så är koden säkert rörig igen. Lägg en stund på att städa upp och kommentera de delar som du misstänker kan behöva en extra förklaring i framtiden.

Extrauppgift HighScore

När du är klar så är det väl ingen överaskning att denna funktionalitet hade varit välkommen till vårt SpaceShooter-spel. Så om du känner dig mogen att sammanfoga dessa projekt så har du en bra utgångspunkt för slutprojektet senare.

Här finns det en extrauppgift kopplad till momentet för den som vill jobba mer och föbereda sig inför slutprojektet.

Denna gång är min rekommendation extra stark att du tar säkerhetskopior på bägge projekten innan du börjar sammanfoga dem.

4.3 Redovisning

När du är klar med detta moment så skall du göra en liten redovisning av allt du har gjort med spelet SpaceShooter. Om du har följt tutorial så är detta en snabb uppvisning av den kod du har skrivit. Om du har gjort egna utbyggnader så är det detta som läraren främst är intresserad av. Tänk på att snygga till koden, dokumentera och kommentera det som skall visas upp.

Hur redovisningen skall gå till bestämmer ni ihop med undervisande lärare.

4.3.1 Betygsfunderingar

Eftersom detta blir en redovisning av saker som är gjorda så finns det olika krav för olika betyg. Det finns möjlighet att komplettera senare i kursen men tanken är att kunna göra klart detta moment och sedan kunna jobba vidare med nya delar av kursen.

Betygsnivå E

För att ligga på betygsnivå E så vill vi att föjande saker, kopplade till SpaceShooter, är klara.

  • SpaceShooter, fungerande spel från kapitel 7.
  • GameStates, så att spelet går att spela flera gånger och innehåller en trevlig välkomstmeny.
  • Externa klasser, HighScore som en fristående applikation.

Betygsnivå C och uppåt

För betygsnivå C och uppåt så är det önskvärt att följande saker, kopplade till SpaceShooter, kan redovisas.

  • SpaceShooter, fungerande spel från kapitel 7,
  • GameStates, så att spelet går att spela flera gånger och innehåller en trevlig välkomstmeny.
  • Om spelet har byggts ut, eller kompletterats, på något eget sätt så får detta gärna presenteras i ett om-state där spelaren också får information om hur spelet skall spelas.
  • Att klassen HighScore på något sätt har kopplats ihop med SpaceShooter så att det går att visa och lagra en aktuell lista på HighScore. (Detta kan eventuellt visas senare under kursen men kommer vara ett baskrav för betygen B/A)