Project Submission (late)

Dependencies:   mbed

Committer:
el17tc
Date:
Fri May 10 08:07:10 2019 +0000
Revision:
0:72f372170a73
Child:
3:83e79d31930c
Save at functioning version;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17tc 0:72f372170a73 1 #ifndef STARTMENU_H
el17tc 0:72f372170a73 2 #define STARTMENU_H
el17tc 0:72f372170a73 3
el17tc 0:72f372170a73 4 #include "Menus.h"
el17tc 0:72f372170a73 5
el17tc 0:72f372170a73 6
el17tc 0:72f372170a73 7 // button which changes the size of the maze
el17tc 0:72f372170a73 8 class SizeButton : public Button {
el17tc 0:72f372170a73 9 public:
el17tc 0:72f372170a73 10 SizeButton() {
el17tc 0:72f372170a73 11 x = 5;
el17tc 0:72f372170a73 12 y = 16;
el17tc 0:72f372170a73 13 }
el17tc 0:72f372170a73 14 void virtual run() {
el17tc 0:72f372170a73 15 if (mazeSize < 20)
el17tc 0:72f372170a73 16 mazeSize += 4;
el17tc 0:72f372170a73 17 printf("sizeButton pushed\n");
el17tc 0:72f372170a73 18 }
el17tc 0:72f372170a73 19 void virtual runBack() {
el17tc 0:72f372170a73 20 if (mazeSize > 12)
el17tc 0:72f372170a73 21 mazeSize -= 4;
el17tc 0:72f372170a73 22 printf("sizeButton decreasing\n");
el17tc 0:72f372170a73 23 }
el17tc 0:72f372170a73 24 };
el17tc 0:72f372170a73 25
el17tc 0:72f372170a73 26 // button which toggles the timer on or off
el17tc 0:72f372170a73 27 class TimerButton : public Button {
el17tc 0:72f372170a73 28 public:
el17tc 0:72f372170a73 29 TimerButton() {
el17tc 0:72f372170a73 30 x = 5;
el17tc 0:72f372170a73 31 y = 24;
el17tc 0:72f372170a73 32 }
el17tc 0:72f372170a73 33 void virtual run() {
el17tc 0:72f372170a73 34 timerFlag = !timerFlag;
el17tc 0:72f372170a73 35 printf("timerButton pushed\n");
el17tc 0:72f372170a73 36 }
el17tc 0:72f372170a73 37 };
el17tc 0:72f372170a73 38
el17tc 0:72f372170a73 39 // button that triggers the main game loop
el17tc 0:72f372170a73 40 class PlayButton : public Button {
el17tc 0:72f372170a73 41 public:
el17tc 0:72f372170a73 42 PlayButton() {
el17tc 0:72f372170a73 43 x = 5;
el17tc 0:72f372170a73 44 y = 40;
el17tc 0:72f372170a73 45 }
el17tc 0:72f372170a73 46 void virtual run() {
el17tc 0:72f372170a73 47 printf("PlayButton pushed\n");
el17tc 0:72f372170a73 48 beginFlag = true;
el17tc 0:72f372170a73 49 }
el17tc 0:72f372170a73 50 };
el17tc 0:72f372170a73 51
el17tc 0:72f372170a73 52
el17tc 0:72f372170a73 53 // the StartMenu is the menu for game setup and starting the game.
el17tc 0:72f372170a73 54 class StartMenu : public Menu {
el17tc 0:72f372170a73 55 public:
el17tc 0:72f372170a73 56 StartMenu(N5110* screenPtr) : Menu(screenPtr) {
el17tc 0:72f372170a73 57 buttons[0] = new SizeButton;
el17tc 0:72f372170a73 58 buttons[1] = new TimerButton;
el17tc 0:72f372170a73 59 buttons[2] = new PlayButton;
el17tc 0:72f372170a73 60 currentButton = buttons[0];
el17tc 0:72f372170a73 61 numOfButtons = 3;
el17tc 0:72f372170a73 62 buttonIndex = 0;
el17tc 0:72f372170a73 63 }
el17tc 0:72f372170a73 64 void virtual draw() {
el17tc 0:72f372170a73 65 std::stringstream ssize;
el17tc 0:72f372170a73 66 ssize << "Size: " << mazeSize;
el17tc 0:72f372170a73 67 std::string someString;
el17tc 0:72f372170a73 68 if (timerFlag)
el17tc 0:72f372170a73 69 someString = "Timer: YES";
el17tc 0:72f372170a73 70 else
el17tc 0:72f372170a73 71 someString = "Timer: NO";
el17tc 0:72f372170a73 72 lcd->printString("Game params:",10,1);
el17tc 0:72f372170a73 73 lcd->printString(ssize.str().c_str(),10,2);
el17tc 0:72f372170a73 74 lcd->printString(someString.c_str(),10,3);
el17tc 0:72f372170a73 75 lcd->printString("Play",10,5);
el17tc 0:72f372170a73 76 }
el17tc 0:72f372170a73 77 ~StartMenu() {
el17tc 0:72f372170a73 78 delete buttons[0];
el17tc 0:72f372170a73 79 delete buttons[1];
el17tc 0:72f372170a73 80 }
el17tc 0:72f372170a73 81 };
el17tc 0:72f372170a73 82
el17tc 0:72f372170a73 83 #endif // STARTMENU_H