FINAL VERSION

Dependencies:   mbed

Committer:
jamesheavey
Date:
Sun Apr 28 16:46:19 2019 +0000
Revision:
56:f9e586348e0b
Parent:
55:b7bde601c23e
Child:
57:d498dd835cfc

        

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 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 50:3da51f34e253 133 while (pad.check_event(Gamepad::A_PRESSED) || 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
jamesheavey 53:8e3da0b58fe9 141 if (pad.check_event(Gamepad::L_PRESSED) && pointer > 2) {
jamesheavey 50:3da51f34e253 142 pointer -= 1;
jamesheavey 53:8e3da0b58fe9 143 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 144 wait(0.1);
jamesheavey 53:8e3da0b58fe9 145 } else if (pad.check_event(Gamepad::R_PRESSED) && pointer < 3) {
jamesheavey 50:3da51f34e253 146 pointer += 1;
jamesheavey 53:8e3da0b58fe9 147 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 148 wait(0.1);
jamesheavey 50:3da51f34e253 149 }
jamesheavey 16:1761dfe801af 150
jamesheavey 56:f9e586348e0b 151 if (pad.check_event(Gamepad::A_PRESSED) && pointer == 3) {
jamesheavey 56:f9e586348e0b 152 pad.tone(750.0,0.3);
jamesheavey 56:f9e586348e0b 153 wait(0.1);
jamesheavey 56:f9e586348e0b 154 tilt = true;
jamesheavey 56:f9e586348e0b 155 } else if (pad.check_event(Gamepad::A_PRESSED) && pointer == 2) {
jamesheavey 53:8e3da0b58fe9 156 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 157 wait(0.1);
jamesheavey 51:9d5c10a88b22 158 tilt = false;
jamesheavey 50:3da51f34e253 159 }
jamesheavey 55:b7bde601c23e 160
jamesheavey 53:8e3da0b58fe9 161 if (pad.check_event(Gamepad::B_PRESSED)) {
jamesheavey 56:f9e586348e0b 162 pad.tone(750.0,0.3);
jamesheavey 50:3da51f34e253 163 main_menu();
jamesheavey 16:1761dfe801af 164 }
jamesheavey 0:7d4d2023ed9c 165 }
jamesheavey 55:b7bde601c23e 166 //settings(); //sometimes the button bounce causes it to skip the while loop (could add wait in at the top)
jamesheavey 10:9f445faa892c 167 }
jamesheavey 10:9f445faa892c 168
jamesheavey 52:652b5f51319d 169 void how_to_play() {
jamesheavey 50:3da51f34e253 170 while (pad.check_event(Gamepad::B_PRESSED) == false) {
jamesheavey 50:3da51f34e253 171 lcd.clear();
jamesheavey 50:3da51f34e253 172 lcd.printString(" explain ",2,2);
jamesheavey 50:3da51f34e253 173 lcd.printString(" PRESS B ",1,4);
jamesheavey 50:3da51f34e253 174 lcd.refresh();
jamesheavey 53:8e3da0b58fe9 175 wait(0.1);
jamesheavey 50:3da51f34e253 176 }
jamesheavey 50:3da51f34e253 177 main_menu();
jamesheavey 50:3da51f34e253 178 }
jamesheavey 16:1761dfe801af 179
jamesheavey 10:9f445faa892c 180 void end_screen() {
jamesheavey 15:b867a6620f96 181 lcd.clear();
jamesheavey 38:3a077f0259df 182 lcd.printString(" RESTART? ",2,2);
jamesheavey 15:b867a6620f96 183 lcd.printString(" PRESS START ",1,4);
jamesheavey 15:b867a6620f96 184 lcd.refresh();
jamesheavey 15:b867a6620f96 185 pad.tone(750.0,0.3);
jamesheavey 15:b867a6620f96 186 wait(0.4);
jamesheavey 15:b867a6620f96 187
jamesheavey 15:b867a6620f96 188 pad.tone(300.0,0.3);
jamesheavey 15:b867a6620f96 189 wait(0.4);
jamesheavey 10:9f445faa892c 190
jamesheavey 10:9f445faa892c 191 while (pad.check_event(Gamepad::START_PRESSED) == false) {
jamesheavey 10:9f445faa892c 192 lcd.clear();
jamesheavey 48:966f2cf803ec 193 lcd.printString(" RESTART? ",2,2); //print score here
jamesheavey 10:9f445faa892c 194 lcd.printString(" PRESS START ",1,4);
jamesheavey 10:9f445faa892c 195 lcd.refresh();
jamesheavey 10:9f445faa892c 196 }
jamesheavey 49:31eb7807dbd3 197 title_screen();
jamesheavey 10:9f445faa892c 198 }
jamesheavey 10:9f445faa892c 199
jamesheavey 13:418a71b24b37 200 void victory_screen() {
jamesheavey 15:b867a6620f96 201 lcd.clear();
jamesheavey 43:81d22f68dfae 202 lcd.printString(" VICTORY! ",2,1);
jamesheavey 47:1d1a827be81b 203 lcd.printString(" CONT = START ",0,4); // print score here
jamesheavey 47:1d1a827be81b 204 lcd.printString(" MENU = BACK ",0,5);
jamesheavey 15:b867a6620f96 205 lcd.refresh();
jamesheavey 22:fa2e0b58043a 206 pad.tone(2500.0,0.1);
jamesheavey 22:fa2e0b58043a 207 wait(0.4);
jamesheavey 15:b867a6620f96 208
jamesheavey 22:fa2e0b58043a 209 pad.tone(2500.0,0.1);
jamesheavey 22:fa2e0b58043a 210 wait(0.2);
jamesheavey 15:b867a6620f96 211
jamesheavey 15:b867a6620f96 212 pad.tone(4000.0,0.6);
jamesheavey 15:b867a6620f96 213 wait(0.6);
jamesheavey 43:81d22f68dfae 214 while (pad.check_event(Gamepad::START_PRESSED) || pad.check_event(Gamepad::BACK_PRESSED) == false) {
jamesheavey 13:418a71b24b37 215 lcd.clear();
jamesheavey 43:81d22f68dfae 216
jamesheavey 43:81d22f68dfae 217 lcd.printString(" VICTORY! ",2,1);
jamesheavey 47:1d1a827be81b 218 lcd.printString(" CONT = START ",0,4);
jamesheavey 47:1d1a827be81b 219 lcd.printString(" MENU = BACK ",0,5);
jamesheavey 43:81d22f68dfae 220
jamesheavey 13:418a71b24b37 221 lcd.refresh();
jamesheavey 15:b867a6620f96 222
jamesheavey 43:81d22f68dfae 223 if (pad.check_event(Gamepad::START_PRESSED)) {
jamesheavey 47:1d1a827be81b 224 prev_score = breakout.get_prev_score();
jamesheavey 55:b7bde601c23e 225 main_game(tilt);
jamesheavey 43:81d22f68dfae 226 }
jamesheavey 43:81d22f68dfae 227 else if (pad.check_event(Gamepad::BACK_PRESSED)) {
jamesheavey 49:31eb7807dbd3 228 title_screen();
jamesheavey 43:81d22f68dfae 229 }
jamesheavey 13:418a71b24b37 230 }
jamesheavey 13:418a71b24b37 231 }
jamesheavey 13:418a71b24b37 232
jamesheavey 49:31eb7807dbd3 233 void title_screen() {
jamesheavey 47:1d1a827be81b 234 tilt = false;
jamesheavey 47:1d1a827be81b 235 prev_score = 0;
jamesheavey 56:f9e586348e0b 236 init(); // initialise and then display welcome screen...
jamesheavey 50:3da51f34e253 237
jamesheavey 50:3da51f34e253 238 Bitmap breakwhite(breakwhite_data, 48, 84);
jamesheavey 50:3da51f34e253 239 Bitmap breakblack(breakblack_data, 48, 84);
jamesheavey 50:3da51f34e253 240
jamesheavey 53:8e3da0b58fe9 241 while (pad.check_event(Gamepad::START_PRESSED) == false) { //maybe add a jingle
jamesheavey 50:3da51f34e253 242
jamesheavey 50:3da51f34e253 243 breakwhite.render(lcd, 0, 0);
jamesheavey 50:3da51f34e253 244 lcd.refresh();
jamesheavey 50:3da51f34e253 245 pad.leds_on();
jamesheavey 50:3da51f34e253 246 wait(0.5);
jamesheavey 50:3da51f34e253 247
jamesheavey 50:3da51f34e253 248 lcd.clear();
jamesheavey 50:3da51f34e253 249
jamesheavey 50:3da51f34e253 250 breakblack.render(lcd, 0, 0);
jamesheavey 50:3da51f34e253 251 lcd.refresh();
jamesheavey 50:3da51f34e253 252 pad.leds_off();
jamesheavey 50:3da51f34e253 253 wait(0.5);
jamesheavey 50:3da51f34e253 254 }
jamesheavey 56:f9e586348e0b 255 pad.tone(750.0,0.3);
jamesheavey 53:8e3da0b58fe9 256 wait(0.2);
jamesheavey 53:8e3da0b58fe9 257 main_menu();
jamesheavey 47:1d1a827be81b 258 }
jamesheavey 47:1d1a827be81b 259
jamesheavey 47:1d1a827be81b 260 void main_game(bool tilt) {
jamesheavey 47:1d1a827be81b 261 int fps = 8; // frames per second
jamesheavey 56:f9e586348e0b 262
jamesheavey 56:f9e586348e0b 263 breakout.init(PADDLE_WIDTH,PADDLE_HEIGHT,BALL_SIZE,pad.read_pot()*3+2,prev_score); // init the objects
jamesheavey 56:f9e586348e0b 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