FINAL VERSION

Dependencies:   mbed

Committer:
jamesheavey
Date:
Sat Apr 27 20:56:03 2019 +0000
Revision:
53:8e3da0b58fe9
Parent:
52:652b5f51319d
Child:
54:d96f68f4735b
in settings, the tilt option doesnt select due to the order, need to fix somehow, also victory screen continue is now broked and title sprite needs to be redone

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jamesheavey 0:7d4d2023ed9c 1 ///////// pre-processor directives ////////
jamesheavey 0:7d4d2023ed9c 2 #include "mbed.h"
jamesheavey 0:7d4d2023ed9c 3 #include "Gamepad.h"
jamesheavey 0:7d4d2023ed9c 4 #include "N5110.h"
jamesheavey 27:1b5038b0a7a2 5 #include "BreakoutEngine.h"
jamesheavey 3:5719d0fe94ed 6 #include "Bitmap.h"
jamesheavey 4:6bd488b5b31a 7 #include<iostream>
jamesheavey 8:1ab6d90c4d60 8 #include "Sprites.h"
jamesheavey 14:38560375d420 9 //#include "MotionControl.h"
jamesheavey 0:7d4d2023ed9c 10
jamesheavey 0:7d4d2023ed9c 11 #ifdef WITH_TESTING
jamesheavey 0:7d4d2023ed9c 12 # include "tests.h"
jamesheavey 0:7d4d2023ed9c 13 #endif
jamesheavey 0:7d4d2023ed9c 14
jamesheavey 9:f6f0f39538c7 15 #define PADDLE_WIDTH 15
jamesheavey 0:7d4d2023ed9c 16 #define PADDLE_HEIGHT 2
jamesheavey 0:7d4d2023ed9c 17 #define BALL_SIZE 2
jamesheavey 0:7d4d2023ed9c 18 #define BALL_SPEED 3
jamesheavey 0:7d4d2023ed9c 19
jamesheavey 0:7d4d2023ed9c 20 /////////////// structs /////////////////
jamesheavey 0:7d4d2023ed9c 21 struct UserInput {
jamesheavey 0:7d4d2023ed9c 22 Direction d;
jamesheavey 0:7d4d2023ed9c 23 float mag;
jamesheavey 0:7d4d2023ed9c 24 };
jamesheavey 0:7d4d2023ed9c 25 /////////////// objects ///////////////
jamesheavey 0:7d4d2023ed9c 26 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
jamesheavey 0:7d4d2023ed9c 27 Gamepad pad;
jamesheavey 27:1b5038b0a7a2 28 BreakoutEngine breakout;
jamesheavey 0:7d4d2023ed9c 29
jamesheavey 0:7d4d2023ed9c 30 ///////////// prototypes ///////////////
jamesheavey 0:7d4d2023ed9c 31 void init();
jamesheavey 0:7d4d2023ed9c 32 void update_game(UserInput input);
jamesheavey 0:7d4d2023ed9c 33 void render();
jamesheavey 53:8e3da0b58fe9 34 void main_menu();
jamesheavey 51:9d5c10a88b22 35 void settings();
jamesheavey 50:3da51f34e253 36 void how_to_play();
jamesheavey 10:9f445faa892c 37 void end_screen();
jamesheavey 49:31eb7807dbd3 38 void title_screen();
jamesheavey 47:1d1a827be81b 39 void main_game(bool tilt);
jamesheavey 47:1d1a827be81b 40 int i = 0;
jamesheavey 47:1d1a827be81b 41 int prev_score = 0;
jamesheavey 47:1d1a827be81b 42
jamesheavey 47:1d1a827be81b 43 bool tilt = false;
jamesheavey 0:7d4d2023ed9c 44
jamesheavey 0:7d4d2023ed9c 45 ///////////// functions ////////////////
jamesheavey 0:7d4d2023ed9c 46 int main()
jamesheavey 0:7d4d2023ed9c 47 {
jamesheavey 0:7d4d2023ed9c 48 #ifdef WITH_TESTING
jamesheavey 0:7d4d2023ed9c 49 int number_of_failures = run_all_tests();
jamesheavey 0:7d4d2023ed9c 50
jamesheavey 0:7d4d2023ed9c 51 if(number_of_failures > 0) return number_of_failures;
jamesheavey 0:7d4d2023ed9c 52 #endif
jamesheavey 51:9d5c10a88b22 53 title_screen();
jamesheavey 3:5719d0fe94ed 54
jamesheavey 0:7d4d2023ed9c 55 }
jamesheavey 0:7d4d2023ed9c 56
jamesheavey 0:7d4d2023ed9c 57 // initialies all classes and libraries
jamesheavey 47:1d1a827be81b 58 void init(int prev_score)
jamesheavey 0:7d4d2023ed9c 59 {
jamesheavey 0:7d4d2023ed9c 60 // need to initialise LCD and Gamepad
jamesheavey 0:7d4d2023ed9c 61 lcd.init();
jamesheavey 0:7d4d2023ed9c 62 pad.init();
jamesheavey 0:7d4d2023ed9c 63
jamesheavey 0:7d4d2023ed9c 64 // initialise the game with correct ball and paddle sizes
jamesheavey 47:1d1a827be81b 65 breakout.init(PADDLE_WIDTH,PADDLE_HEIGHT,BALL_SIZE,pad.read_pot()*3+2,prev_score);
jamesheavey 0:7d4d2023ed9c 66
jamesheavey 0:7d4d2023ed9c 67 }
jamesheavey 0:7d4d2023ed9c 68
jamesheavey 0:7d4d2023ed9c 69 // this function draws each frame on the LCD
jamesheavey 0:7d4d2023ed9c 70 void render()
jamesheavey 0:7d4d2023ed9c 71 {
jamesheavey 0:7d4d2023ed9c 72 // clear screen, re-draw and refresh
jamesheavey 0:7d4d2023ed9c 73 lcd.clear();
jamesheavey 26:25eea19c5fbe 74 breakout.draw(lcd);
jamesheavey 0:7d4d2023ed9c 75 lcd.refresh();
jamesheavey 0:7d4d2023ed9c 76 }
jamesheavey 0:7d4d2023ed9c 77
jamesheavey 0:7d4d2023ed9c 78 // simple splash screen displayed on start-up
jamesheavey 53:8e3da0b58fe9 79 void main_menu() {
jamesheavey 0:7d4d2023ed9c 80 // wait flashing LEDs until start button is pressed
jamesheavey 14:38560375d420 81 //bool joy = true;
jamesheavey 14:38560375d420 82
jamesheavey 50:3da51f34e253 83 lcd.clear();
jamesheavey 50:3da51f34e253 84 lcd.printString(" START ",0,2); // start with default as joystick
jamesheavey 50:3da51f34e253 85 lcd.printString(" SETTINGS ",0,3); // choose between joystick and tilt
jamesheavey 50:3da51f34e253 86 lcd.printString(" HOW TO PLAY ",0,4); // brief text on how to do stuff
jamesheavey 50:3da51f34e253 87 lcd.refresh();
jamesheavey 53:8e3da0b58fe9 88 wait(0.1);
jamesheavey 50:3da51f34e253 89
jamesheavey 53:8e3da0b58fe9 90 int pointer = 2;
jamesheavey 52:652b5f51319d 91
jamesheavey 50:3da51f34e253 92 while (pad.check_event(Gamepad::A_PRESSED) == false) { //maybe add a jingle
jamesheavey 53:8e3da0b58fe9 93 lcd.clear();
jamesheavey 53:8e3da0b58fe9 94 lcd.printString(" START ",0,2); // start with default as joystick
jamesheavey 53:8e3da0b58fe9 95 lcd.printString(" SETTINGS ",0,3); // choose between joystick and tilt
jamesheavey 53:8e3da0b58fe9 96 lcd.printString(" HOW TO PLAY ",0,4); // brief text on how to do stuff
jamesheavey 53:8e3da0b58fe9 97 lcd.printString("->",0,pointer);
jamesheavey 53:8e3da0b58fe9 98 lcd.refresh();
jamesheavey 53:8e3da0b58fe9 99 wait(0.1);
jamesheavey 53:8e3da0b58fe9 100 if (pad.check_event(Gamepad::L_PRESSED) && pointer > 2) { // change to joystick
jamesheavey 50:3da51f34e253 101 pointer -= 1;
jamesheavey 53:8e3da0b58fe9 102 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 103 wait(0.1);
jamesheavey 53:8e3da0b58fe9 104 } else if (pad.check_event(Gamepad::R_PRESSED) && pointer < 4) {
jamesheavey 50:3da51f34e253 105 pointer += 1;
jamesheavey 53:8e3da0b58fe9 106 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 107 wait(0.1);
jamesheavey 50:3da51f34e253 108 }
jamesheavey 3:5719d0fe94ed 109
jamesheavey 50:3da51f34e253 110 }
jamesheavey 53:8e3da0b58fe9 111 if (pointer == 2) {
jamesheavey 52:652b5f51319d 112 main_game(tilt);
jamesheavey 51:9d5c10a88b22 113 }
jamesheavey 53:8e3da0b58fe9 114 else if (pointer == 3){
jamesheavey 51:9d5c10a88b22 115 settings();
jamesheavey 51:9d5c10a88b22 116 }
jamesheavey 53:8e3da0b58fe9 117 else if (pointer == 4){
jamesheavey 51:9d5c10a88b22 118 how_to_play();
jamesheavey 51:9d5c10a88b22 119 }
jamesheavey 50:3da51f34e253 120 }
jamesheavey 50:3da51f34e253 121
jamesheavey 52:652b5f51319d 122 void settings() {
jamesheavey 50:3da51f34e253 123
jamesheavey 50:3da51f34e253 124 lcd.clear();
jamesheavey 50:3da51f34e253 125 lcd.printString(" JOYSTICK ",0,2); // start with default as joystick
jamesheavey 50:3da51f34e253 126 lcd.printString(" TILT ",0,3); // choose between joystick and tilt
jamesheavey 50:3da51f34e253 127 lcd.refresh();
jamesheavey 53:8e3da0b58fe9 128 wait(0.1);
jamesheavey 53:8e3da0b58fe9 129
jamesheavey 53:8e3da0b58fe9 130 int pointer = 2;
jamesheavey 52:652b5f51319d 131
jamesheavey 50:3da51f34e253 132 while (pad.check_event(Gamepad::A_PRESSED) || pad.check_event(Gamepad::B_PRESSED) == false) {
jamesheavey 53:8e3da0b58fe9 133 lcd.clear();
jamesheavey 53:8e3da0b58fe9 134 lcd.printString(" JOYSTICK ",0,2); // start with default as joystick
jamesheavey 53:8e3da0b58fe9 135 lcd.printString(" TILT ",0,3); // choose between joystick and tilt
jamesheavey 53:8e3da0b58fe9 136 lcd.printString("->",0,pointer);
jamesheavey 53:8e3da0b58fe9 137 lcd.refresh();
jamesheavey 53:8e3da0b58fe9 138 wait(0.1);
jamesheavey 53:8e3da0b58fe9 139
jamesheavey 53:8e3da0b58fe9 140 if (pad.check_event(Gamepad::L_PRESSED) && pointer > 2) {
jamesheavey 50:3da51f34e253 141 pointer -= 1;
jamesheavey 53:8e3da0b58fe9 142 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 143 wait(0.1);
jamesheavey 53:8e3da0b58fe9 144 } else if (pad.check_event(Gamepad::R_PRESSED) && pointer < 3) {
jamesheavey 50:3da51f34e253 145 pointer += 1;
jamesheavey 53:8e3da0b58fe9 146 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 147 wait(0.1);
jamesheavey 50:3da51f34e253 148 }
jamesheavey 16:1761dfe801af 149
jamesheavey 53:8e3da0b58fe9 150 if (pad.check_event(Gamepad::A_PRESSED) && pointer == 2) {
jamesheavey 53:8e3da0b58fe9 151 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 152 wait(0.1);
jamesheavey 51:9d5c10a88b22 153 tilt = false;
jamesheavey 51:9d5c10a88b22 154 }
jamesheavey 53:8e3da0b58fe9 155 else if (pad.check_event(Gamepad::A_PRESSED) && pointer == 3) { // this one doesnt work because of the order??
jamesheavey 53:8e3da0b58fe9 156 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 157 wait(0.1);
jamesheavey 51:9d5c10a88b22 158 tilt = true;
jamesheavey 50:3da51f34e253 159 }
jamesheavey 53:8e3da0b58fe9 160 if (pad.check_event(Gamepad::B_PRESSED)) {
jamesheavey 50:3da51f34e253 161 main_menu();
jamesheavey 16:1761dfe801af 162 }
jamesheavey 0:7d4d2023ed9c 163 }
jamesheavey 53:8e3da0b58fe9 164 settings(); //sometimes the button bounce causes it to skip the while loop (could add wait in at the top)
jamesheavey 10:9f445faa892c 165 }
jamesheavey 10:9f445faa892c 166
jamesheavey 52:652b5f51319d 167 void how_to_play() {
jamesheavey 50:3da51f34e253 168 while (pad.check_event(Gamepad::B_PRESSED) == false) {
jamesheavey 50:3da51f34e253 169 lcd.clear();
jamesheavey 50:3da51f34e253 170 lcd.printString(" explain ",2,2);
jamesheavey 50:3da51f34e253 171 lcd.printString(" PRESS B ",1,4);
jamesheavey 50:3da51f34e253 172 lcd.refresh();
jamesheavey 53:8e3da0b58fe9 173 wait(0.1);
jamesheavey 50:3da51f34e253 174 }
jamesheavey 50:3da51f34e253 175 main_menu();
jamesheavey 50:3da51f34e253 176 }
jamesheavey 16:1761dfe801af 177
jamesheavey 10:9f445faa892c 178 void end_screen() {
jamesheavey 15:b867a6620f96 179 lcd.clear();
jamesheavey 38:3a077f0259df 180 lcd.printString(" RESTART? ",2,2);
jamesheavey 15:b867a6620f96 181 lcd.printString(" PRESS START ",1,4);
jamesheavey 15:b867a6620f96 182 lcd.refresh();
jamesheavey 15:b867a6620f96 183 pad.tone(750.0,0.3);
jamesheavey 15:b867a6620f96 184 wait(0.4);
jamesheavey 15:b867a6620f96 185
jamesheavey 15:b867a6620f96 186 pad.tone(300.0,0.3);
jamesheavey 15:b867a6620f96 187 wait(0.4);
jamesheavey 10:9f445faa892c 188
jamesheavey 10:9f445faa892c 189 while (pad.check_event(Gamepad::START_PRESSED) == false) {
jamesheavey 10:9f445faa892c 190 lcd.clear();
jamesheavey 48:966f2cf803ec 191 lcd.printString(" RESTART? ",2,2); //print score here
jamesheavey 10:9f445faa892c 192 lcd.printString(" PRESS START ",1,4);
jamesheavey 10:9f445faa892c 193 lcd.refresh();
jamesheavey 10:9f445faa892c 194 }
jamesheavey 49:31eb7807dbd3 195 title_screen();
jamesheavey 10:9f445faa892c 196 }
jamesheavey 10:9f445faa892c 197
jamesheavey 13:418a71b24b37 198 void victory_screen() {
jamesheavey 15:b867a6620f96 199 lcd.clear();
jamesheavey 43:81d22f68dfae 200 lcd.printString(" VICTORY! ",2,1);
jamesheavey 47:1d1a827be81b 201 lcd.printString(" CONT = START ",0,4); // print score here
jamesheavey 47:1d1a827be81b 202 lcd.printString(" MENU = BACK ",0,5);
jamesheavey 15:b867a6620f96 203 lcd.refresh();
jamesheavey 22:fa2e0b58043a 204 pad.tone(2500.0,0.1);
jamesheavey 22:fa2e0b58043a 205 wait(0.4);
jamesheavey 15:b867a6620f96 206
jamesheavey 22:fa2e0b58043a 207 pad.tone(2500.0,0.1);
jamesheavey 22:fa2e0b58043a 208 wait(0.2);
jamesheavey 15:b867a6620f96 209
jamesheavey 15:b867a6620f96 210 pad.tone(4000.0,0.6);
jamesheavey 15:b867a6620f96 211 wait(0.6);
jamesheavey 43:81d22f68dfae 212 while (pad.check_event(Gamepad::START_PRESSED) || pad.check_event(Gamepad::BACK_PRESSED) == false) {
jamesheavey 13:418a71b24b37 213 lcd.clear();
jamesheavey 43:81d22f68dfae 214
jamesheavey 43:81d22f68dfae 215 lcd.printString(" VICTORY! ",2,1);
jamesheavey 47:1d1a827be81b 216 lcd.printString(" CONT = START ",0,4);
jamesheavey 47:1d1a827be81b 217 lcd.printString(" MENU = BACK ",0,5);
jamesheavey 43:81d22f68dfae 218
jamesheavey 13:418a71b24b37 219 lcd.refresh();
jamesheavey 15:b867a6620f96 220
jamesheavey 43:81d22f68dfae 221 if (pad.check_event(Gamepad::START_PRESSED)) {
jamesheavey 47:1d1a827be81b 222 prev_score = breakout.get_prev_score();
jamesheavey 47:1d1a827be81b 223 main_game(tilt); // placeholder, change so game restarts
jamesheavey 43:81d22f68dfae 224 }
jamesheavey 43:81d22f68dfae 225 else if (pad.check_event(Gamepad::BACK_PRESSED)) {
jamesheavey 49:31eb7807dbd3 226 title_screen();
jamesheavey 43:81d22f68dfae 227 }
jamesheavey 13:418a71b24b37 228 }
jamesheavey 13:418a71b24b37 229 }
jamesheavey 13:418a71b24b37 230
jamesheavey 49:31eb7807dbd3 231 void title_screen() {
jamesheavey 47:1d1a827be81b 232 tilt = false;
jamesheavey 47:1d1a827be81b 233 prev_score = 0;
jamesheavey 47:1d1a827be81b 234 init(prev_score); // initialise and then display welcome screen...
jamesheavey 50:3da51f34e253 235
jamesheavey 50:3da51f34e253 236 Bitmap breakwhite(breakwhite_data, 48, 84);
jamesheavey 50:3da51f34e253 237 Bitmap breakblack(breakblack_data, 48, 84);
jamesheavey 50:3da51f34e253 238
jamesheavey 53:8e3da0b58fe9 239 while (pad.check_event(Gamepad::START_PRESSED) == false) { //maybe add a jingle
jamesheavey 50:3da51f34e253 240
jamesheavey 50:3da51f34e253 241 breakwhite.render(lcd, 0, 0);
jamesheavey 50:3da51f34e253 242 lcd.refresh();
jamesheavey 50:3da51f34e253 243 pad.leds_on();
jamesheavey 50:3da51f34e253 244 wait(0.5);
jamesheavey 50:3da51f34e253 245
jamesheavey 50:3da51f34e253 246 lcd.clear();
jamesheavey 50:3da51f34e253 247
jamesheavey 50:3da51f34e253 248 breakblack.render(lcd, 0, 0);
jamesheavey 50:3da51f34e253 249 lcd.refresh();
jamesheavey 50:3da51f34e253 250 pad.leds_off();
jamesheavey 50:3da51f34e253 251 wait(0.5);
jamesheavey 50:3da51f34e253 252 }
jamesheavey 53:8e3da0b58fe9 253 pad.tone(2000.0,0.2);
jamesheavey 53:8e3da0b58fe9 254 wait(0.2);
jamesheavey 53:8e3da0b58fe9 255 main_menu();
jamesheavey 47:1d1a827be81b 256 }
jamesheavey 47:1d1a827be81b 257
jamesheavey 47:1d1a827be81b 258 void main_game(bool tilt) {
jamesheavey 47:1d1a827be81b 259 int fps = 8; // frames per second
jamesheavey 47:1d1a827be81b 260 i ++; //to init the stuff
jamesheavey 47:1d1a827be81b 261 if (i > 1) {
jamesheavey 47:1d1a827be81b 262 init(prev_score);
jamesheavey 47:1d1a827be81b 263 }
jamesheavey 47:1d1a827be81b 264 bool pause = false;
jamesheavey 47:1d1a827be81b 265 lcd.setBrightness(1);
jamesheavey 47:1d1a827be81b 266
jamesheavey 10:9f445faa892c 267 Bitmap three(three_data, 48, 84);
jamesheavey 10:9f445faa892c 268 Bitmap two(two_data, 48, 84);
jamesheavey 10:9f445faa892c 269 Bitmap one(one_data, 48, 84);
jamesheavey 10:9f445faa892c 270
jamesheavey 10:9f445faa892c 271 lcd.clear();
jamesheavey 10:9f445faa892c 272 three.render(lcd, 0, 0);
jamesheavey 10:9f445faa892c 273 lcd.refresh();
jamesheavey 15:b867a6620f96 274 pad.tone(500.0,0.5);
jamesheavey 10:9f445faa892c 275 wait(1);
jamesheavey 10:9f445faa892c 276
jamesheavey 10:9f445faa892c 277 lcd.clear();
jamesheavey 10:9f445faa892c 278 two.render(lcd, 0, 0);
jamesheavey 10:9f445faa892c 279 lcd.refresh();
jamesheavey 15:b867a6620f96 280 pad.tone(500.0,0.5);
jamesheavey 10:9f445faa892c 281 wait(1);
jamesheavey 10:9f445faa892c 282
jamesheavey 10:9f445faa892c 283 lcd.clear();
jamesheavey 10:9f445faa892c 284 one.render(lcd, 0, 0);
jamesheavey 10:9f445faa892c 285 lcd.refresh();
jamesheavey 15:b867a6620f96 286 pad.tone(1000.0,1);
jamesheavey 10:9f445faa892c 287 wait(1);
jamesheavey 10:9f445faa892c 288
jamesheavey 10:9f445faa892c 289 render(); // first draw the initial frame
jamesheavey 10:9f445faa892c 290 wait(1.0f/fps); // and wait for one frame period
jamesheavey 10:9f445faa892c 291
jamesheavey 10:9f445faa892c 292
jamesheavey 10:9f445faa892c 293 // game loop - read input, update the game state and render the display
jamesheavey 10:9f445faa892c 294 while (1) {
jamesheavey 26:25eea19c5fbe 295 breakout.read_input(pad,tilt);
jamesheavey 26:25eea19c5fbe 296 breakout.update(pad);
jamesheavey 10:9f445faa892c 297 render();
jamesheavey 26:25eea19c5fbe 298 if (breakout.check_goal(pad) == true) {
jamesheavey 12:f714a9e8c55b 299 lcd.setBrightness(0);
jamesheavey 12:f714a9e8c55b 300 wait(0.1);
jamesheavey 12:f714a9e8c55b 301 lcd.setBrightness(1);
jamesheavey 12:f714a9e8c55b 302 wait(0.1);
jamesheavey 12:f714a9e8c55b 303 lcd.setBrightness(0);
jamesheavey 12:f714a9e8c55b 304 wait(0.1);
jamesheavey 12:f714a9e8c55b 305 lcd.setBrightness(1);
jamesheavey 12:f714a9e8c55b 306 wait(0.1);
jamesheavey 12:f714a9e8c55b 307 lcd.setBrightness(0);
jamesheavey 12:f714a9e8c55b 308 wait(0.1);
jamesheavey 12:f714a9e8c55b 309 lcd.setBrightness(1);
jamesheavey 12:f714a9e8c55b 310 wait(0.1);
jamesheavey 12:f714a9e8c55b 311 lcd.setBrightness(0);
jamesheavey 12:f714a9e8c55b 312 wait(0.1);
jamesheavey 12:f714a9e8c55b 313 lcd.setBrightness(1);
jamesheavey 12:f714a9e8c55b 314 }
jamesheavey 10:9f445faa892c 315 if (pad.check_event(Gamepad::BACK_PRESSED) == true) {
jamesheavey 10:9f445faa892c 316 pause = !pause;
jamesheavey 10:9f445faa892c 317 }
jamesheavey 10:9f445faa892c 318 while (pause == true) {
jamesheavey 10:9f445faa892c 319 lcd.clear();
jamesheavey 10:9f445faa892c 320 lcd.printString(" PAUSED ",0,2);
jamesheavey 10:9f445faa892c 321 lcd.refresh();
jamesheavey 10:9f445faa892c 322 if (pad.check_event(Gamepad::BACK_PRESSED) == true) {
jamesheavey 10:9f445faa892c 323 pause = !pause;
jamesheavey 10:9f445faa892c 324 }
jamesheavey 10:9f445faa892c 325 wait(1.0f/fps);
jamesheavey 10:9f445faa892c 326 }
jamesheavey 26:25eea19c5fbe 327 if (breakout.get_lives() == 0) {
jamesheavey 10:9f445faa892c 328 //if (end_screen() == true) {
jamesheavey 10:9f445faa892c 329 // main_menu();
jamesheavey 10:9f445faa892c 330 //}
jamesheavey 10:9f445faa892c 331 //else {
jamesheavey 10:9f445faa892c 332 // main_menu();
jamesheavey 10:9f445faa892c 333 //}
jamesheavey 14:38560375d420 334 pad.leds_off(); //turns last led off (doesnt run through and update bored so last led doent turn off via lives leds
jamesheavey 10:9f445faa892c 335 end_screen();
jamesheavey 10:9f445faa892c 336 }
jamesheavey 26:25eea19c5fbe 337 if (breakout.get_num_left() == 0) {
jamesheavey 13:418a71b24b37 338 victory_screen();
jamesheavey 13:418a71b24b37 339 }
jamesheavey 10:9f445faa892c 340 wait(1.0f/fps);
jamesheavey 10:9f445faa892c 341 }
jamesheavey 10:9f445faa892c 342 }
jamesheavey 10:9f445faa892c 343