ELEC2645 (2018/19) / Mbed 2 deprecated henririgby98

Dependencies:   mbed

Revision:
10:2b52d7e06712
Parent:
9:436b88b70fdd
Child:
11:c60b61a80060
--- a/main.cpp	Wed May 08 22:53:22 2019 +0000
+++ b/main.cpp	Thu May 09 00:01:29 2019 +0000
@@ -25,6 +25,9 @@
 void render();
 void welcome();
 void menu();
+void Story();
+void Controls();
+void Credits();
 void Game1Over();
 void x1_1();
 void x1_2();
@@ -38,6 +41,7 @@
 int score = 0;
 int speed = MISSILES_SPEED;
 int i=0;
+int choose = 0;
 int X_1[11][11] =   {
     { 1,1,0,0,0,0,0,0,0,0,0 },
     { 1,1,1,0,0,0,0,0,0,0,0 },
@@ -84,8 +88,10 @@
     init();     // initialise and then display welcome screen...
     welcome();  // waiting for the user to start
     
+    menu:
     menu();
     
+    goto menu;
     render();  // first draw the initial frame 
     wait(1.0f/fps);  // and wait for one frame period
 
@@ -203,9 +209,50 @@
     lcd.printString("X ==> Controls ",0,3);
     lcd.printString("Y ==> Credits ",0,4);
     lcd.refresh();
-     
+    choose = 0;
     // wait flashing LEDs until start button is pressed 
-    while ( pad.check_event(Gamepad::START_PRESSED) == false) {
+    while (choose == 0) {
+        if (pad.check_event(Gamepad::A_PRESSED) == true) {
+            choose = 1;
+            Story();
+        } else if (pad.check_event(Gamepad::B_PRESSED) == true) {
+            choose = 1;
+        } else if (pad.check_event(Gamepad::X_PRESSED) == true) {
+            choose = 1;
+            Controls();
+        } else if (pad.check_event(Gamepad::Y_PRESSED) == true) {
+            choose = 1;
+            Credits();
+        }
+    
+        
+        pad.leds_on();
+        wait(0.1);
+        pad.leds_off();
+        wait(0.1);
+    }
+}
+
+void Story() {
+    lcd.clear();
+    lcd.printString("   Story    ",0,1);
+    lcd.refresh();
+    // wait flashing LEDs until start button is pressed 
+    while ( pad.check_event(Gamepad::BACK_PRESSED) == false) {
+        pad.leds_on();
+        wait(0.1);
+        pad.leds_off();
+        wait(0.1);
+    }
+ 
+}
+
+void Controls() {
+    lcd.clear();
+    lcd.printString("   Controls    ",0,0);
+    lcd.refresh();
+    // wait flashing LEDs until start button is pressed 
+    while ( pad.check_event(Gamepad::BACK_PRESSED) == false) {
         pad.leds_on();
         wait(0.1);
         pad.leds_off();
@@ -214,8 +261,88 @@
  
 }
 
+void Credits() {
+    lcd.clear();
+    lcd.printString("   Credits    ",0,0);
+    lcd.printString("By Henri Rigby    ",0,4);
+    lcd.printString("SID: 201198821    ",0,2);
+    lcd.refresh();
+    // wait flashing LEDs until start button is pressed 
+    while ( pad.check_event(Gamepad::BACK_PRESSED) == false) {
+        wait(0.6);
+        pad.leds_on();
+        wait(0.1);
+        pad.leds_off();
+        wait(0.3);
+        pad.leds_on();
+        wait(0.4);
+        pad.leds_off();
+        wait(0.3);
+         pad.leds_on();
+        wait(0.1);
+        pad.leds_off();
+        wait(0.6);
+        
+         pad.leds_on();
+        wait(0.1);
+        pad.leds_off();
+        wait(0.3);
+         pad.leds_on();
+        wait(0.1);
+        pad.leds_off();
+        wait(0.6);
+        
+        pad.leds_on();
+        wait(0.4);
+        pad.leds_off();
+        wait(0.3);
+        pad.leds_on();
+        wait(0.4);
+        pad.leds_off();
+        wait(0.3);
+        pad.leds_on();
+        wait(0.1);
+        pad.leds_off();
+        wait(0.6);
+        
+        pad.leds_on();
+        wait(0.4);
+        pad.leds_off();
+        wait(0.3);
+         pad.leds_on();
+        wait(0.1);
+        pad.leds_off();
+        wait(0.3);
+         pad.leds_on();
+        wait(0.1);
+        pad.leds_off();
+        wait(0.3);
+         pad.leds_on();
+        wait(0.1);
+        pad.leds_off();
+        wait(0.6);
+        
+         pad.leds_on();
+        wait(0.4);
+        pad.leds_off();
+        wait(0.3);
+         pad.leds_on();
+        wait(0.1);
+        pad.leds_off();
+        wait(0.3);
+         pad.leds_on();
+        wait(0.4);
+        pad.leds_off();
+        wait(0.3);
+         pad.leds_on();
+        wait(0.4);
+        pad.leds_off();
+    }
+ 
+}
+
 void Game1Over() {
-    lcd.printString("   You died!    ",0,1);
+    lcd.printString("   You Died!    ",0,1);
     lcd.printString("  Score =",0,2);
     spacerebellion.print_scores(lcd);
     lcd.drawSprite(5,3,11,11,(int *)X_2);