Vecka 8 – Tutorial

Hej! Sista blogginlägget för denna kurs och detta inlägg kommer att handla om hur jag tänkte och gick till väga när jag gjorde en tutorial för vårt spel. Vårt spel är inte särskilt svårt, kan vara för att jag har spelat det så många gånger nu så det har blivit lätt men från de olika speltesten som har varit så har jag fått känslan av att spelet är svårt att förstå i början. En av anledningarna till att spelet är svårt är för att det går så snabbt när man kommer in i spelet, det är många fiender och objekt som kommer mot spelaren och när man inte har spelat det innan så kan det leda till att man får lite panik och trycker på de knappar man tror ska göra det man vill. Innan så fanns endast ett val som hette “Controls” som låg inne i “Options”, det låg där eftersom det var tänkt att man skulle kunna välja vilka knappar man ville använda till vad, men det blev aldrig så.

Så denna vecka har jag skapat en ny textrad som lyder “How to play” genom att deklarera en array med sf::Text som heter howto och som innehåller 3 element. Dessa skapar jag sedan i meny klassens “Enter” funktion och sätter att howto[0] skall visas i den första menyn som kommer på skärmen. Jag deklarerar även vilken storlek, font samt vilka färg de element som finns skall ha innan de ritas ut i “Draw” funktionen.

I “Update” funktionen så skapar jag en sf::IntRect för varje element i arrayn. En sf::IntRect behöver veta vart det övre vänstra hörnet är och sedan hur bred och hög den skall vara. Som exempel så skapar jag en sf::IntRect som heter m_pHowTo och sätter in det första elementet från howto som heter “How to play” och har en plats i den första menyn som visas(dessa variabler deklarerades tidigare i “Enter”). Så nu finns det en text och en osynlig ruta runtom texten. Nästa steg är att ge rutan några egenskaper!

Programmet kollar hela tiden vilket värde “selectedMenu” har. Den första menyn som visas har värdet 0, går man till exempel in på “Options” så ändras värdet till 2 och så vidare. Så programmet kollar om en sf::IntRect innehåller muspekaren genom att man skriver rektangelnsNamn.contains(musensPositionIBilden) och är muspekaren i rektangeln så byter texten färg och programmet kollar även ifall man trycker på musen inom rektangeln. Trycker man på rektangeln m_pHowTo så ändras “selectedMenu” till 1.

“Draw” funktionen håller också koll på vad “selectedMenu” har för värde, har den värdet 0 så ritar den ut den första menyn. När värdet ändras i “Update” och blir 1 så kommer “Draw” rita ut det som är deklarerat i if (selectedMenu == 1). För att kunna rita ut alla element i arrayn så gör jag en for loop. Den säger for (int i = 0; i < 2; i++) draw(howto[i]), vilket leder till att den kommer rita ut allt i arrayn tills i inte längre är mindre än två det vill säga att den kommer rita ut de tre element som deklarerades tidigare.

Väl inne i “How to play” så kan man trycka på “Previous” och “Next” för att bläddra mellan bilderna. Detta görs på liknande sätt som med “selectedMenu” men istället för att byta till en annan meny så byter den bilderna. Nu saknas bilderna för tutorialen men de kommer in idag och jag tror att det kommer hjälpa de som testar spelet att förstå grunden.

tut

About Simon Glans

2015 Programming