James Cummins / Mbed 2 deprecated el17jnc

Dependencies:   mbed

Committer:
JamesCummins
Date:
Thu Apr 18 11:50:53 2019 +0000
Revision:
22:4e305ff8a050
Parent:
21:9d1447765ee1
Child:
29:42651f87522b
Options Menu appears to be working. Change Brightness working (other than that it skips 0.7???) Need to complete adjust ball speed and high scores list. (Still need to save to SD card somehow)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JamesCummins 20:4a39a1a2be51 1 #include "Pause.h"
JamesCummins 20:4a39a1a2be51 2
JamesCummins 22:4e305ff8a050 3 Pause::Pause(){
JamesCummins 22:4e305ff8a050 4 }
JamesCummins 22:4e305ff8a050 5
JamesCummins 22:4e305ff8a050 6 Pause::~Pause(){
JamesCummins 22:4e305ff8a050 7 }
JamesCummins 22:4e305ff8a050 8
JamesCummins 20:4a39a1a2be51 9 void Pause::init(){
JamesCummins 20:4a39a1a2be51 10 _state = RESUME;
JamesCummins 20:4a39a1a2be51 11 }
JamesCummins 20:4a39a1a2be51 12
JamesCummins 21:9d1447765ee1 13 int Pause::pause_menu(Gamepad &gamepad, N5110 &lcd, int fps, int frame, Mode mode){
JamesCummins 20:4a39a1a2be51 14 PauseOption choice = RESUME;
JamesCummins 20:4a39a1a2be51 15 while(!(gamepad.check_event(gamepad.A_PRESSED))){
JamesCummins 20:4a39a1a2be51 16 lcd.clear();
JamesCummins 20:4a39a1a2be51 17 display_pause_options(lcd);
JamesCummins 20:4a39a1a2be51 18 choice = pause_selection(gamepad, lcd);
JamesCummins 20:4a39a1a2be51 19 lcd.refresh();
JamesCummins 20:4a39a1a2be51 20 wait(0.2);
JamesCummins 20:4a39a1a2be51 21 }
JamesCummins 20:4a39a1a2be51 22 int jump_to_frame = frame;
JamesCummins 20:4a39a1a2be51 23 if(choice == RESUME){ jump_to_frame = frame; } //Just keep code iterating
JamesCummins 20:4a39a1a2be51 24 if(choice == RESTART){ jump_to_frame = 0; } //return to frame 1 if restarted
JamesCummins 20:4a39a1a2be51 25 if(choice == QUIT){ jump_to_frame = 45*fps; } //jump to final frame
JamesCummins 21:9d1447765ee1 26 if(choice == HELP){ //display relevant help screen
JamesCummins 21:9d1447765ee1 27 if(mode == CLASSIC_MODE){ classic_help(gamepad, lcd); }
JamesCummins 21:9d1447765ee1 28 if(mode == BRICKBREAKER_MODE){ brickbreaker_help(gamepad, lcd); }
JamesCummins 21:9d1447765ee1 29 }
JamesCummins 20:4a39a1a2be51 30 return jump_to_frame;
JamesCummins 20:4a39a1a2be51 31 }
JamesCummins 20:4a39a1a2be51 32
JamesCummins 20:4a39a1a2be51 33 void Pause::display_pause_options(N5110 &lcd){
JamesCummins 20:4a39a1a2be51 34 lcd.printString("GAME PAUSED:", 6, 0);
JamesCummins 20:4a39a1a2be51 35 lcd.printString("Resume", 24, 1);
JamesCummins 20:4a39a1a2be51 36 lcd.printString("Restart", 21, 2);
JamesCummins 20:4a39a1a2be51 37 lcd.printString("Quit", 30, 3);
JamesCummins 20:4a39a1a2be51 38 lcd.printString("Help", 30, 4);
JamesCummins 20:4a39a1a2be51 39 lcd.printString("(Select = A)", 6, 5);
JamesCummins 20:4a39a1a2be51 40 }
JamesCummins 20:4a39a1a2be51 41
JamesCummins 20:4a39a1a2be51 42 PauseOption Pause::pause_selection(Gamepad &gamepad, N5110 &lcd){
JamesCummins 20:4a39a1a2be51 43 PauseSelection fsm[4] = {
JamesCummins 20:4a39a1a2be51 44 {1,{HELP,RESTART,RESUME}},
JamesCummins 20:4a39a1a2be51 45 {2,{RESUME,QUIT,RESTART}},
JamesCummins 20:4a39a1a2be51 46 {3,{RESTART,HELP,QUIT}},
JamesCummins 20:4a39a1a2be51 47 {4,{QUIT,RESUME,HELP}}
JamesCummins 20:4a39a1a2be51 48 };
JamesCummins 20:4a39a1a2be51 49 if(gamepad.get_direction() == N){ _next_state = 0;}
JamesCummins 20:4a39a1a2be51 50 else if(gamepad.get_direction() == S){ _next_state = 1;}
JamesCummins 20:4a39a1a2be51 51 else{ _next_state = 2;}
JamesCummins 20:4a39a1a2be51 52 _state = fsm[_state].next_state[_next_state];
JamesCummins 20:4a39a1a2be51 53 lcd.printString(">", 6, fsm[_state].output);
JamesCummins 20:4a39a1a2be51 54 lcd.printString("<", 72, fsm[_state].output);
JamesCummins 20:4a39a1a2be51 55 return _state;
JamesCummins 20:4a39a1a2be51 56 }
JamesCummins 20:4a39a1a2be51 57
JamesCummins 20:4a39a1a2be51 58 void Pause::brickbreaker_help(Gamepad &gamepad, N5110 &lcd){
JamesCummins 20:4a39a1a2be51 59 while(!(gamepad.check_event(gamepad.A_PRESSED))){
JamesCummins 20:4a39a1a2be51 60 lcd.clear();
JamesCummins 20:4a39a1a2be51 61 lcd.printString("Help", 30, 0);
JamesCummins 20:4a39a1a2be51 62 lcd.printString("Tilt gamepad", 0, 1);
JamesCummins 20:4a39a1a2be51 63 lcd.printString("to move ball", 0, 2);
JamesCummins 20:4a39a1a2be51 64 lcd.printString("Game length=", 0, 3);
JamesCummins 20:4a39a1a2be51 65 lcd.printString("45 secs", 0, 4);
JamesCummins 20:4a39a1a2be51 66 lcd.printString("A = go back", 0, 5);
JamesCummins 20:4a39a1a2be51 67 lcd.refresh();
JamesCummins 20:4a39a1a2be51 68 wait(0.5);
JamesCummins 20:4a39a1a2be51 69 }
JamesCummins 20:4a39a1a2be51 70 }
JamesCummins 20:4a39a1a2be51 71
JamesCummins 20:4a39a1a2be51 72 void Pause::classic_help(Gamepad &gamepad, N5110 &lcd){
JamesCummins 20:4a39a1a2be51 73 while(!(gamepad.check_event(gamepad.A_PRESSED))){
JamesCummins 20:4a39a1a2be51 74 lcd.clear();
JamesCummins 20:4a39a1a2be51 75 lcd.printString("Help", 30, 0);
JamesCummins 20:4a39a1a2be51 76 lcd.printString("Don't leave", 0, 1);
JamesCummins 20:4a39a1a2be51 77 lcd.printString("the path! Tilt", 0, 2);
JamesCummins 20:4a39a1a2be51 78 lcd.printString("pad to roll", 0, 3);
JamesCummins 20:4a39a1a2be51 79 lcd.printString("the ball", 0, 4);
JamesCummins 20:4a39a1a2be51 80 lcd.printString("A = go back", 0, 5);
JamesCummins 20:4a39a1a2be51 81 lcd.refresh();
JamesCummins 20:4a39a1a2be51 82 wait(0.5);
JamesCummins 20:4a39a1a2be51 83 }
JamesCummins 20:4a39a1a2be51 84 }