Ahmed Adamjee
/
SnakeVSBlock
Snake vs Block Game to be run upon K64F.
Diff: MenuClasses/StartScreen/StartScreen.cpp
- Revision:
- 62:ebf6ecf8a6d5
- Parent:
- 61:f3c402bc2ad0
- Child:
- 63:205f0ca48473
diff -r f3c402bc2ad0 -r ebf6ecf8a6d5 MenuClasses/StartScreen/StartScreen.cpp --- a/MenuClasses/StartScreen/StartScreen.cpp Tue Apr 30 08:32:30 2019 +0000 +++ b/MenuClasses/StartScreen/StartScreen.cpp Tue Apr 30 14:53:38 2019 +0000 @@ -51,7 +51,7 @@ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, }; - + int arrow[7][9] = { {0,0,0,0,1,0,0,0,0}, {0,0,0,1,1,0,0,0,0}, @@ -61,7 +61,7 @@ {0,0,0,1,1,0,0,0,0}, {0,0,0,0,1,0,0,0,0}, }; - + int motionControl[12][21] = { {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0}, @@ -127,22 +127,23 @@ StartScreen::StartScreen() { - + } StartScreen::~StartScreen() { - + } void StartScreen::init() { + fps = 40; //sets the default frames per second to a certain value. i = 16; //main menu selection arrow position g_mode = 1; //game mode selection (joystick/motion control). gs = 2; //game speed page selection. st = 1; //this is the sr num of settings pages. sc = 1; //this helps in wether ot not to show credits to the user. - cs = 4; //sensitivity of control speed of menu options. + cs = 5; //sensitivity of control speed of menu options. } void StartScreen::screen_saver(N5110 &lcd, Gamepad &pad) @@ -150,7 +151,7 @@ //this saves the Theme song I want to play at the start. int song[18] = {441,494,439,372,392,370,330,246,329,331,370,555,555,495,440,392,392,370}; pad.leds_on(); - + for(int ani = -51; ani <= 0; ani+=3) { lcd.clear(); lcd.drawSprite(0,ani,48,84,(int *)sprite); //Function used to draw the sprite @@ -163,10 +164,12 @@ } wait(0.2); } - if (Start_Pressed == 0) { wait(0.3); } //dont wait anymore if start is pressed. + if (Start_Pressed == 0) { + wait(0.3); //dont wait anymore if start is pressed. + } pad.leds_off(); lcd.clear(); - + StartScreen::instruct(lcd,pad); //after the screen_saver is displayed we need to send in instructions of how to preoceed to menu. } @@ -187,9 +190,9 @@ lcd.clear(); pad.leds_off(); } - + void StartScreen::credits(N5110 &lcd) -{ +{ lcd.clear(); if(sc) { lcd.printString("Created BY",8,1); @@ -221,7 +224,7 @@ } void StartScreen::ImplementMenu(N5110 &lcd, Gamepad &pad) -{ +{ lcd.printString("SnakeVSBlock",5,0); lcd.printString("Play",0,2); lcd.printString("Settings",0,3); @@ -229,10 +232,10 @@ lcd.printString("Tutorial",0,5); Direction d = pad.get_direction(); if(((d==N)||(pad.check_event(Gamepad::L_PRESSED) == true))&&(i>16)) { - i=i-8; + i=i-8; } if(((d==S)||(pad.check_event(Gamepad::R_PRESSED) == true))&&(i<40)) { - i=i+8; + i=i+8; } lcd.drawSprite(50,i,7,9,(int *)arrow); //Function used to draw the sprite. lcd.refresh(); @@ -243,24 +246,24 @@ void StartScreen::NextMenu(N5110 &lcd, Gamepad &pad) { switch (i) { - case 16: - game_mode(lcd, pad); - break; - case 24: - float *cs_sc; - cs_sc = _settings.Implement(lcd, pad, cs); - cs = cs_sc[0]; //saves the number in cs which controls the control speed of the menu oftions (basically the wait time of between reading joystick input). - sc = cs_sc[1]; //saves the number in sc which decides weather or not to show credits when game starts. - main_menu(lcd, pad); //to return to main_menu if back is pressed - break; - case 32: - _stats.StatsDisplay(lcd, pad); - main_menu(lcd, pad); //to return to main_menu if back is pressed - break; - case 40: - _tutorial.Implement(lcd, pad); - main_menu(lcd, pad); //to return to main_menu if back is pressed - break; + case 16: + game_mode(lcd, pad); + break; + case 24: + float *cs_sc; + cs_sc = _settings.Implement(lcd, pad, cs); + cs = cs_sc[0]; //saves the number in cs which controls the control speed of the menu oftions (basically the wait time of between reading joystick input). + sc = cs_sc[1]; //saves the number in sc which decides weather or not to show credits when game starts. + main_menu(lcd, pad); //to return to main_menu if back is pressed + break; + case 32: + _stats.StatsDisplay(lcd, pad); + main_menu(lcd, pad); //to return to main_menu if back is pressed + break; + case 40: + _tutorial.Implement(lcd, pad); + main_menu(lcd, pad); //to return to main_menu if back is pressed + break; } } @@ -276,14 +279,19 @@ pad.tone(1000.0,0.1); back_pressed = 1; break; + } else { + back_pressed = 0; } - else {back_pressed = 0;} } pad.tone(1000.0,0.1); - if(back_pressed) { main_menu(lcd, pad); } - else { - if (g_mode == 2) { StartScreen::motionControlInstructions(lcd); } - else { pad.tone(1000.0,0.1); } + if(back_pressed) { + main_menu(lcd, pad); + } else { + if (g_mode == 2) { + StartScreen::motionControlInstructions(lcd); + } else { + pad.tone(1000.0,0.1); + } lcd.clear(); game_speed(lcd, pad); } @@ -293,37 +301,37 @@ { lcd.clear(); switch (g_mode) { - case 1: - lcd.printString("Joystick",18,1); - lcd.drawSprite(17,22,13,48,(int *)joystick); //Function used to draw the sprite. - lcd.refresh(); - break; - case 2: - lcd.drawSprite(10,22,13,8,(int *)navL); //Function used to draw the sprite. - lcd.drawSprite(65,22,13,8,(int *)navR); //Function used to draw the sprite. - lcd.printString("Motion Control",1,1); - lcd.drawSprite(32,22,12,21,(int *)motionControl); //Function used to draw the sprite. - break; + case 1: + lcd.printString("Joystick",18,1); + lcd.drawSprite(17,22,13,48,(int *)joystick); //Function used to draw the sprite. + lcd.refresh(); + break; + case 2: + lcd.drawSprite(10,22,13,8,(int *)navL); //Function used to draw the sprite. + lcd.drawSprite(65,22,13,8,(int *)navR); //Function used to draw the sprite. + lcd.printString("Motion Control",1,1); + lcd.drawSprite(32,22,12,21,(int *)motionControl); //Function used to draw the sprite. + break; } - + lcd.refresh(); } void StartScreen::SelectMode(Gamepad &pad) -{ +{ Direction d = pad.get_direction(); wait(1/cs); if(((d==E)||(d==W)||(pad.check_event(Gamepad::R_PRESSED) == true)||(pad.check_event(Gamepad::L_PRESSED) == true))&&(g_mode==1)) { g_mode=2; } - + else if(((d==E)||(d==W)||(pad.check_event(Gamepad::R_PRESSED) == true)||(pad.check_event(Gamepad::L_PRESSED) == true))&&(g_mode==2)) { g_mode=1; } } void StartScreen::motionControlInstructions(N5110 &lcd) -{ +{ lcd.clear(); lcd.printString("While playing the",5,0); //Function used to promt the user to start. lcd.printString("game, press",9,1); @@ -346,11 +354,13 @@ pad.tone(1000.0,0.1); back_pressed = 1; break; + } else { + back_pressed = 0; } - else {back_pressed = 0;} } - if(back_pressed) { game_mode(lcd, pad); } - else { + if(back_pressed) { + game_mode(lcd, pad); + } else { pad.tone(1000.0,0.1); lcd.clear(); wait(1/cs); @@ -358,46 +368,43 @@ } void StartScreen::selectSpeedPage(Gamepad &pad) -{ +{ Direction d = pad.get_direction(); wait(1/cs); if(((d==E)||(pad.check_event(Gamepad::R_PRESSED) == true))&&(gs==4)) { gs=1; - } - else if(((d==W)||(pad.check_event(Gamepad::L_PRESSED) == true))&&(gs==1)) { + } else if(((d==W)||(pad.check_event(Gamepad::L_PRESSED) == true))&&(gs==1)) { gs=4; - } - else if(((d==E)||(pad.check_event(Gamepad::R_PRESSED) == true))&&(1<=gs<=3)) { + } else if(((d==E)||(pad.check_event(Gamepad::R_PRESSED) == true))&&(1<=gs<=3)) { gs=gs+1; - } - else if(((d==W)||(pad.check_event(Gamepad::L_PRESSED) == true))&&(2<=gs<=4)) { + } else if(((d==W)||(pad.check_event(Gamepad::L_PRESSED) == true))&&(2<=gs<=4)) { gs=gs-1; } } void StartScreen::showSpeedOptions(N5110 &lcd) //decrease code size. -{ +{ lcd.clear(); lcd.drawSprite(10,22,13,8,(int *)navL); //Function used to draw the sprite. lcd.drawSprite(65,22,13,8,(int *)navR); //Function used to draw the sprite. lcd.printString("Game Speed",10,1); switch (gs) { - case 1: - lcd.printString("SNAKE",28,3); - fps = 12; - break; - case 2: - lcd.printString("HUMAN",28,3); - fps = 18; - break; - case 3: - lcd.printString("HORSE",28,3); - fps = 22; - break; - case 4: - lcd.printString("CHEETHA",21,3); - fps = 27; + case 1: + lcd.printString("SNAKE",28,3); + fps = 12; + break; + case 2: + lcd.printString("HUMAN",28,3); + fps = 18; + break; + case 3: + lcd.printString("HORSE",28,3); + fps = 22; + break; + case 4: + lcd.printString("CHEETHA",21,3); + fps = 27; } - + lcd.refresh(); } \ No newline at end of file