FINAL VERSION

Dependencies:   mbed

Committer:
jamesheavey
Date:
Sun Apr 28 15:59:45 2019 +0000
Revision:
55:b7bde601c23e
Parent:
54:d96f68f4735b
Child:
56:f9e586348e0b

        

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 55:b7bde601c23e 128 wait(0.3);
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 55:b7bde601c23e 154 } else if (pad.check_event(Gamepad::A_PRESSED) && pointer == 3) {
jamesheavey 53:8e3da0b58fe9 155 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 156 wait(0.1);
jamesheavey 51:9d5c10a88b22 157 tilt = true;
jamesheavey 50:3da51f34e253 158 }
jamesheavey 55:b7bde601c23e 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 55:b7bde601c23e 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 55:b7bde601c23e 223 main_game(tilt);
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 54:d96f68f4735b 234 i = 0;
jamesheavey 47:1d1a827be81b 235 init(prev_score); // 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 53:8e3da0b58fe9 254 pad.tone(2000.0,0.2);
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 47:1d1a827be81b 261 i ++; //to init the stuff
jamesheavey 47:1d1a827be81b 262 if (i > 1) {
jamesheavey 47:1d1a827be81b 263 init(prev_score);
jamesheavey 47:1d1a827be81b 264 }
jamesheavey 47:1d1a827be81b 265 bool pause = false;
jamesheavey 47:1d1a827be81b 266 lcd.setBrightness(1);
jamesheavey 47:1d1a827be81b 267
jamesheavey 10:9f445faa892c 268 Bitmap three(three_data, 48, 84);
jamesheavey 10:9f445faa892c 269 Bitmap two(two_data, 48, 84);
jamesheavey 10:9f445faa892c 270 Bitmap one(one_data, 48, 84);
jamesheavey 10:9f445faa892c 271
jamesheavey 10:9f445faa892c 272 lcd.clear();
jamesheavey 10:9f445faa892c 273 three.render(lcd, 0, 0);
jamesheavey 10:9f445faa892c 274 lcd.refresh();
jamesheavey 15:b867a6620f96 275 pad.tone(500.0,0.5);
jamesheavey 10:9f445faa892c 276 wait(1);
jamesheavey 10:9f445faa892c 277
jamesheavey 10:9f445faa892c 278 lcd.clear();
jamesheavey 10:9f445faa892c 279 two.render(lcd, 0, 0);
jamesheavey 10:9f445faa892c 280 lcd.refresh();
jamesheavey 15:b867a6620f96 281 pad.tone(500.0,0.5);
jamesheavey 10:9f445faa892c 282 wait(1);
jamesheavey 10:9f445faa892c 283
jamesheavey 10:9f445faa892c 284 lcd.clear();
jamesheavey 10:9f445faa892c 285 one.render(lcd, 0, 0);
jamesheavey 10:9f445faa892c 286 lcd.refresh();
jamesheavey 15:b867a6620f96 287 pad.tone(1000.0,1);
jamesheavey 10:9f445faa892c 288 wait(1);
jamesheavey 10:9f445faa892c 289
jamesheavey 10:9f445faa892c 290 render(); // first draw the initial frame
jamesheavey 10:9f445faa892c 291 wait(1.0f/fps); // and wait for one frame period
jamesheavey 10:9f445faa892c 292
jamesheavey 10:9f445faa892c 293
jamesheavey 10:9f445faa892c 294 // game loop - read input, update the game state and render the display
jamesheavey 10:9f445faa892c 295 while (1) {
jamesheavey 26:25eea19c5fbe 296 breakout.read_input(pad,tilt);
jamesheavey 26:25eea19c5fbe 297 breakout.update(pad);
jamesheavey 10:9f445faa892c 298 render();
jamesheavey 26:25eea19c5fbe 299 if (breakout.check_goal(pad) == true) {
jamesheavey 12:f714a9e8c55b 300 lcd.setBrightness(0);
jamesheavey 12:f714a9e8c55b 301 wait(0.1);
jamesheavey 12:f714a9e8c55b 302 lcd.setBrightness(1);
jamesheavey 12:f714a9e8c55b 303 wait(0.1);
jamesheavey 12:f714a9e8c55b 304 lcd.setBrightness(0);
jamesheavey 12:f714a9e8c55b 305 wait(0.1);
jamesheavey 12:f714a9e8c55b 306 lcd.setBrightness(1);
jamesheavey 12:f714a9e8c55b 307 wait(0.1);
jamesheavey 12:f714a9e8c55b 308 lcd.setBrightness(0);
jamesheavey 12:f714a9e8c55b 309 wait(0.1);
jamesheavey 12:f714a9e8c55b 310 lcd.setBrightness(1);
jamesheavey 12:f714a9e8c55b 311 wait(0.1);
jamesheavey 12:f714a9e8c55b 312 lcd.setBrightness(0);
jamesheavey 12:f714a9e8c55b 313 wait(0.1);
jamesheavey 12:f714a9e8c55b 314 lcd.setBrightness(1);
jamesheavey 12:f714a9e8c55b 315 }
jamesheavey 10:9f445faa892c 316 if (pad.check_event(Gamepad::BACK_PRESSED) == true) {
jamesheavey 10:9f445faa892c 317 pause = !pause;
jamesheavey 10:9f445faa892c 318 }
jamesheavey 10:9f445faa892c 319 while (pause == true) {
jamesheavey 10:9f445faa892c 320 lcd.clear();
jamesheavey 10:9f445faa892c 321 lcd.printString(" PAUSED ",0,2);
jamesheavey 10:9f445faa892c 322 lcd.refresh();
jamesheavey 10:9f445faa892c 323 if (pad.check_event(Gamepad::BACK_PRESSED) == true) {
jamesheavey 10:9f445faa892c 324 pause = !pause;
jamesheavey 10:9f445faa892c 325 }
jamesheavey 10:9f445faa892c 326 wait(1.0f/fps);
jamesheavey 10:9f445faa892c 327 }
jamesheavey 26:25eea19c5fbe 328 if (breakout.get_lives() == 0) {
jamesheavey 10:9f445faa892c 329 //if (end_screen() == true) {
jamesheavey 10:9f445faa892c 330 // main_menu();
jamesheavey 10:9f445faa892c 331 //}
jamesheavey 10:9f445faa892c 332 //else {
jamesheavey 10:9f445faa892c 333 // main_menu();
jamesheavey 10:9f445faa892c 334 //}
jamesheavey 14:38560375d420 335 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 336 end_screen();
jamesheavey 10:9f445faa892c 337 }
jamesheavey 26:25eea19c5fbe 338 if (breakout.get_num_left() == 0) {
jamesheavey 13:418a71b24b37 339 victory_screen();
jamesheavey 13:418a71b24b37 340 }
jamesheavey 10:9f445faa892c 341 wait(1.0f/fps);
jamesheavey 10:9f445faa892c 342 }
jamesheavey 10:9f445faa892c 343 }
jamesheavey 10:9f445faa892c 344