FINAL VERSION

Dependencies:   mbed

Committer:
jamesheavey
Date:
Tue Apr 30 10:06:46 2019 +0000
Revision:
57:d498dd835cfc
Parent:
56:f9e586348e0b
Child:
58:a159cd976aca
menu fixed

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 57:d498dd835cfc 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 prev_score = 0;
jamesheavey 47:1d1a827be81b 41
jamesheavey 47:1d1a827be81b 42 bool tilt = false;
jamesheavey 0:7d4d2023ed9c 43
jamesheavey 0:7d4d2023ed9c 44 ///////////// functions ////////////////
jamesheavey 0:7d4d2023ed9c 45 int main()
jamesheavey 0:7d4d2023ed9c 46 {
jamesheavey 0:7d4d2023ed9c 47 #ifdef WITH_TESTING
jamesheavey 0:7d4d2023ed9c 48 int number_of_failures = run_all_tests();
jamesheavey 0:7d4d2023ed9c 49
jamesheavey 0:7d4d2023ed9c 50 if(number_of_failures > 0) return number_of_failures;
jamesheavey 0:7d4d2023ed9c 51 #endif
jamesheavey 51:9d5c10a88b22 52 title_screen();
jamesheavey 3:5719d0fe94ed 53
jamesheavey 0:7d4d2023ed9c 54 }
jamesheavey 0:7d4d2023ed9c 55
jamesheavey 0:7d4d2023ed9c 56 // initialies all classes and libraries
jamesheavey 56:f9e586348e0b 57 void init()
jamesheavey 0:7d4d2023ed9c 58 {
jamesheavey 0:7d4d2023ed9c 59 // need to initialise LCD and Gamepad
jamesheavey 0:7d4d2023ed9c 60 lcd.init();
jamesheavey 0:7d4d2023ed9c 61 pad.init();
jamesheavey 0:7d4d2023ed9c 62
jamesheavey 0:7d4d2023ed9c 63 // initialise the game with correct ball and paddle sizes
jamesheavey 0:7d4d2023ed9c 64
jamesheavey 0:7d4d2023ed9c 65 }
jamesheavey 0:7d4d2023ed9c 66
jamesheavey 0:7d4d2023ed9c 67 // this function draws each frame on the LCD
jamesheavey 0:7d4d2023ed9c 68 void render()
jamesheavey 0:7d4d2023ed9c 69 {
jamesheavey 0:7d4d2023ed9c 70 // clear screen, re-draw and refresh
jamesheavey 0:7d4d2023ed9c 71 lcd.clear();
jamesheavey 26:25eea19c5fbe 72 breakout.draw(lcd);
jamesheavey 0:7d4d2023ed9c 73 lcd.refresh();
jamesheavey 0:7d4d2023ed9c 74 }
jamesheavey 0:7d4d2023ed9c 75
jamesheavey 0:7d4d2023ed9c 76 // simple splash screen displayed on start-up
jamesheavey 53:8e3da0b58fe9 77 void main_menu() {
jamesheavey 0:7d4d2023ed9c 78 // wait flashing LEDs until start button is pressed
jamesheavey 14:38560375d420 79 //bool joy = true;
jamesheavey 14:38560375d420 80
jamesheavey 50:3da51f34e253 81 lcd.clear();
jamesheavey 50:3da51f34e253 82 lcd.printString(" START ",0,2); // start with default as joystick
jamesheavey 50:3da51f34e253 83 lcd.printString(" SETTINGS ",0,3); // choose between joystick and tilt
jamesheavey 50:3da51f34e253 84 lcd.printString(" HOW TO PLAY ",0,4); // brief text on how to do stuff
jamesheavey 50:3da51f34e253 85 lcd.refresh();
jamesheavey 56:f9e586348e0b 86 wait(0.3);
jamesheavey 50:3da51f34e253 87
jamesheavey 53:8e3da0b58fe9 88 int pointer = 2;
jamesheavey 52:652b5f51319d 89
jamesheavey 50:3da51f34e253 90 while (pad.check_event(Gamepad::A_PRESSED) == false) { //maybe add a jingle
jamesheavey 53:8e3da0b58fe9 91 lcd.clear();
jamesheavey 53:8e3da0b58fe9 92 lcd.printString(" START ",0,2); // start with default as joystick
jamesheavey 53:8e3da0b58fe9 93 lcd.printString(" SETTINGS ",0,3); // choose between joystick and tilt
jamesheavey 53:8e3da0b58fe9 94 lcd.printString(" HOW TO PLAY ",0,4); // brief text on how to do stuff
jamesheavey 56:f9e586348e0b 95 lcd.printString(" >",0,pointer);
jamesheavey 53:8e3da0b58fe9 96 lcd.refresh();
jamesheavey 53:8e3da0b58fe9 97 wait(0.1);
jamesheavey 53:8e3da0b58fe9 98 if (pad.check_event(Gamepad::L_PRESSED) && pointer > 2) { // change to joystick
jamesheavey 50:3da51f34e253 99 pointer -= 1;
jamesheavey 53:8e3da0b58fe9 100 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 101 wait(0.1);
jamesheavey 53:8e3da0b58fe9 102 } else if (pad.check_event(Gamepad::R_PRESSED) && pointer < 4) {
jamesheavey 50:3da51f34e253 103 pointer += 1;
jamesheavey 53:8e3da0b58fe9 104 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 105 wait(0.1);
jamesheavey 50:3da51f34e253 106 }
jamesheavey 3:5719d0fe94ed 107
jamesheavey 50:3da51f34e253 108 }
jamesheavey 53:8e3da0b58fe9 109 if (pointer == 2) {
jamesheavey 56:f9e586348e0b 110 pad.tone(750.0,0.3);
jamesheavey 52:652b5f51319d 111 main_game(tilt);
jamesheavey 51:9d5c10a88b22 112 }
jamesheavey 53:8e3da0b58fe9 113 else if (pointer == 3){
jamesheavey 56:f9e586348e0b 114 pad.tone(750.0,0.3);
jamesheavey 51:9d5c10a88b22 115 settings();
jamesheavey 51:9d5c10a88b22 116 }
jamesheavey 53:8e3da0b58fe9 117 else if (pointer == 4){
jamesheavey 56:f9e586348e0b 118 pad.tone(750.0,0.3);
jamesheavey 51:9d5c10a88b22 119 how_to_play();
jamesheavey 51:9d5c10a88b22 120 }
jamesheavey 50:3da51f34e253 121 }
jamesheavey 50:3da51f34e253 122
jamesheavey 52:652b5f51319d 123 void settings() {
jamesheavey 50:3da51f34e253 124
jamesheavey 50:3da51f34e253 125 lcd.clear();
jamesheavey 50:3da51f34e253 126 lcd.printString(" JOYSTICK ",0,2); // start with default as joystick
jamesheavey 50:3da51f34e253 127 lcd.printString(" TILT ",0,3); // choose between joystick and tilt
jamesheavey 50:3da51f34e253 128 lcd.refresh();
jamesheavey 55:b7bde601c23e 129 wait(0.3);
jamesheavey 53:8e3da0b58fe9 130
jamesheavey 53:8e3da0b58fe9 131 int pointer = 2;
jamesheavey 52:652b5f51319d 132
jamesheavey 57:d498dd835cfc 133 while (pad.check_event(Gamepad::B_PRESSED) == false) {
jamesheavey 53:8e3da0b58fe9 134 lcd.clear();
jamesheavey 53:8e3da0b58fe9 135 lcd.printString(" JOYSTICK ",0,2); // start with default as joystick
jamesheavey 53:8e3da0b58fe9 136 lcd.printString(" TILT ",0,3); // choose between joystick and tilt
jamesheavey 56:f9e586348e0b 137 lcd.printString(" >",0,pointer);
jamesheavey 53:8e3da0b58fe9 138 lcd.refresh();
jamesheavey 53:8e3da0b58fe9 139 wait(0.1);
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 57:d498dd835cfc 150 if (pad.check_event(Gamepad::A_PRESSED) {
jamesheavey 56:f9e586348e0b 151 pad.tone(750.0,0.3);
jamesheavey 56:f9e586348e0b 152 wait(0.1);
jamesheavey 57:d498dd835cfc 153 if (pointer == 2) {
jamesheavey 57:d498dd835cfc 154 tilt = false;
jamesheavey 57:d498dd835cfc 155 }
jamesheavey 57:d498dd835cfc 156 else if (pointer == 3) {
jamesheavey 57:d498dd835cfc 157 tilt = true;
jamesheavey 57:d498dd835cfc 158 }
jamesheavey 55:b7bde601c23e 159
jamesheavey 53:8e3da0b58fe9 160 if (pad.check_event(Gamepad::B_PRESSED)) {
jamesheavey 56:f9e586348e0b 161 pad.tone(750.0,0.3);
jamesheavey 50:3da51f34e253 162 main_menu();
jamesheavey 16:1761dfe801af 163 }
jamesheavey 0:7d4d2023ed9c 164 }
jamesheavey 55:b7bde601c23e 165 //settings(); //sometimes the button bounce causes it to skip the while loop (could add wait in at the top)
jamesheavey 10:9f445faa892c 166 }
jamesheavey 10:9f445faa892c 167
jamesheavey 52:652b5f51319d 168 void how_to_play() {
jamesheavey 50:3da51f34e253 169 while (pad.check_event(Gamepad::B_PRESSED) == false) {
jamesheavey 50:3da51f34e253 170 lcd.clear();
jamesheavey 50:3da51f34e253 171 lcd.printString(" explain ",2,2);
jamesheavey 50:3da51f34e253 172 lcd.printString(" PRESS B ",1,4);
jamesheavey 50:3da51f34e253 173 lcd.refresh();
jamesheavey 53:8e3da0b58fe9 174 wait(0.1);
jamesheavey 50:3da51f34e253 175 }
jamesheavey 50:3da51f34e253 176 main_menu();
jamesheavey 50:3da51f34e253 177 }
jamesheavey 16:1761dfe801af 178
jamesheavey 10:9f445faa892c 179 void end_screen() {
jamesheavey 15:b867a6620f96 180 lcd.clear();
jamesheavey 38:3a077f0259df 181 lcd.printString(" RESTART? ",2,2);
jamesheavey 15:b867a6620f96 182 lcd.printString(" PRESS START ",1,4);
jamesheavey 15:b867a6620f96 183 lcd.refresh();
jamesheavey 15:b867a6620f96 184 pad.tone(750.0,0.3);
jamesheavey 15:b867a6620f96 185 wait(0.4);
jamesheavey 15:b867a6620f96 186
jamesheavey 15:b867a6620f96 187 pad.tone(300.0,0.3);
jamesheavey 15:b867a6620f96 188 wait(0.4);
jamesheavey 10:9f445faa892c 189
jamesheavey 10:9f445faa892c 190 while (pad.check_event(Gamepad::START_PRESSED) == false) {
jamesheavey 10:9f445faa892c 191 lcd.clear();
jamesheavey 48:966f2cf803ec 192 lcd.printString(" RESTART? ",2,2); //print score here
jamesheavey 10:9f445faa892c 193 lcd.printString(" PRESS START ",1,4);
jamesheavey 10:9f445faa892c 194 lcd.refresh();
jamesheavey 10:9f445faa892c 195 }
jamesheavey 49:31eb7807dbd3 196 title_screen();
jamesheavey 10:9f445faa892c 197 }
jamesheavey 10:9f445faa892c 198
jamesheavey 13:418a71b24b37 199 void victory_screen() {
jamesheavey 15:b867a6620f96 200 lcd.clear();
jamesheavey 43:81d22f68dfae 201 lcd.printString(" VICTORY! ",2,1);
jamesheavey 47:1d1a827be81b 202 lcd.printString(" CONT = START ",0,4); // print score here
jamesheavey 47:1d1a827be81b 203 lcd.printString(" MENU = BACK ",0,5);
jamesheavey 15:b867a6620f96 204 lcd.refresh();
jamesheavey 22:fa2e0b58043a 205 pad.tone(2500.0,0.1);
jamesheavey 22:fa2e0b58043a 206 wait(0.4);
jamesheavey 15:b867a6620f96 207
jamesheavey 22:fa2e0b58043a 208 pad.tone(2500.0,0.1);
jamesheavey 22:fa2e0b58043a 209 wait(0.2);
jamesheavey 15:b867a6620f96 210
jamesheavey 15:b867a6620f96 211 pad.tone(4000.0,0.6);
jamesheavey 15:b867a6620f96 212 wait(0.6);
jamesheavey 43:81d22f68dfae 213 while (pad.check_event(Gamepad::START_PRESSED) || pad.check_event(Gamepad::BACK_PRESSED) == false) {
jamesheavey 13:418a71b24b37 214 lcd.clear();
jamesheavey 43:81d22f68dfae 215
jamesheavey 43:81d22f68dfae 216 lcd.printString(" VICTORY! ",2,1);
jamesheavey 47:1d1a827be81b 217 lcd.printString(" CONT = START ",0,4);
jamesheavey 47:1d1a827be81b 218 lcd.printString(" MENU = BACK ",0,5);
jamesheavey 43:81d22f68dfae 219
jamesheavey 13:418a71b24b37 220 lcd.refresh();
jamesheavey 15:b867a6620f96 221
jamesheavey 43:81d22f68dfae 222 if (pad.check_event(Gamepad::START_PRESSED)) {
jamesheavey 47:1d1a827be81b 223 prev_score = breakout.get_prev_score();
jamesheavey 55:b7bde601c23e 224 main_game(tilt);
jamesheavey 43:81d22f68dfae 225 }
jamesheavey 43:81d22f68dfae 226 else if (pad.check_event(Gamepad::BACK_PRESSED)) {
jamesheavey 49:31eb7807dbd3 227 title_screen();
jamesheavey 43:81d22f68dfae 228 }
jamesheavey 13:418a71b24b37 229 }
jamesheavey 13:418a71b24b37 230 }
jamesheavey 13:418a71b24b37 231
jamesheavey 49:31eb7807dbd3 232 void title_screen() {
jamesheavey 47:1d1a827be81b 233 tilt = false;
jamesheavey 47:1d1a827be81b 234 prev_score = 0;
jamesheavey 56:f9e586348e0b 235 init(); // initialise and then display welcome screen...
jamesheavey 50:3da51f34e253 236
jamesheavey 50:3da51f34e253 237 Bitmap breakwhite(breakwhite_data, 48, 84);
jamesheavey 50:3da51f34e253 238 Bitmap breakblack(breakblack_data, 48, 84);
jamesheavey 50:3da51f34e253 239
jamesheavey 53:8e3da0b58fe9 240 while (pad.check_event(Gamepad::START_PRESSED) == false) { //maybe add a jingle
jamesheavey 50:3da51f34e253 241
jamesheavey 50:3da51f34e253 242 breakwhite.render(lcd, 0, 0);
jamesheavey 50:3da51f34e253 243 lcd.refresh();
jamesheavey 50:3da51f34e253 244 pad.leds_on();
jamesheavey 50:3da51f34e253 245 wait(0.5);
jamesheavey 50:3da51f34e253 246
jamesheavey 50:3da51f34e253 247 lcd.clear();
jamesheavey 50:3da51f34e253 248
jamesheavey 50:3da51f34e253 249 breakblack.render(lcd, 0, 0);
jamesheavey 50:3da51f34e253 250 lcd.refresh();
jamesheavey 50:3da51f34e253 251 pad.leds_off();
jamesheavey 50:3da51f34e253 252 wait(0.5);
jamesheavey 50:3da51f34e253 253 }
jamesheavey 56:f9e586348e0b 254 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 255 wait(0.2);
jamesheavey 53:8e3da0b58fe9 256 main_menu();
jamesheavey 47:1d1a827be81b 257 }
jamesheavey 47:1d1a827be81b 258
jamesheavey 47:1d1a827be81b 259 void main_game(bool tilt) {
jamesheavey 47:1d1a827be81b 260 int fps = 8; // frames per second
jamesheavey 56:f9e586348e0b 261
jamesheavey 56:f9e586348e0b 262 breakout.init(PADDLE_WIDTH,PADDLE_HEIGHT,BALL_SIZE,pad.read_pot()*3+2,prev_score); // init the objects
jamesheavey 56:f9e586348e0b 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