ELEC2645 (2018/19) / Mbed 2 deprecated henririgby98

Dependencies:   mbed

Revision:
11:c60b61a80060
Parent:
10:2b52d7e06712
Child:
12:3bfde5b4d834
--- a/main.cpp	Thu May 09 00:01:29 2019 +0000
+++ b/main.cpp	Thu May 09 02:59:11 2019 +0000
@@ -78,11 +78,17 @@
     { 1,0,1,0,0,0,0,0,1,0,1 },
     { 0,0,0,1,1,0,1,1,0,0,0 },
 };
+int arrowd[6][11] =  {
+    { 1,1,1,1,1,1,1,1,1,1,1 },
+    { 0,1,1,1,1,1,1,1,1,1,0 },
+    { 0,0,1,1,1,1,1,1,1,0,0 },
+    { 0,0,0,1,1,1,1,1,0,0,0 },
+    { 0,0,0,0,1,1,1,0,0,0,0 },
+    { 0,0,0,0,0,1,0,0,0,0,0 },
+};
 ///////////// functions ////////////////
 int main()
 {
-    start:
-    end = false;
     int fps = 8;  // frames per second
     
     init();     // initialise and then display welcome screen...
@@ -90,8 +96,8 @@
     
     menu:
     menu();
-    
-    goto menu;
+    init(); 
+    end = false;
     render();  // first draw the initial frame 
     wait(1.0f/fps);  // and wait for one frame period
 
@@ -156,7 +162,7 @@
     }
     lcd.clear();
     Game1Over();
-    goto start;
+    goto menu;
 }
 
 // initialies all classes and libraries
@@ -202,7 +208,7 @@
 }
 
 void menu() {
-    
+    lcd.clear();
     lcd.printString("     MENU    ",0,0);
     lcd.printString("A ==> Story ",0,1);
     lcd.printString("B ==> Play ",0,2);
@@ -215,14 +221,17 @@
         if (pad.check_event(Gamepad::A_PRESSED) == true) {
             choose = 1;
             Story();
+            menu();
         } else if (pad.check_event(Gamepad::B_PRESSED) == true) {
             choose = 1;
         } else if (pad.check_event(Gamepad::X_PRESSED) == true) {
             choose = 1;
             Controls();
+            menu();
         } else if (pad.check_event(Gamepad::Y_PRESSED) == true) {
             choose = 1;
             Credits();
+            menu();
         }
     
         
@@ -233,12 +242,54 @@
     }
 }
 
+
 void Story() {
     lcd.clear();
-    lcd.printString("   Story    ",0,1);
+    lcd.printString("    Story    ",0,0);
+    lcd.printString("The Year: 2098",0,1);
+    lcd.printString("Humans Control",0,2);
+    lcd.printString("Sectors 3-8 Of",0,3);
+    lcd.printString("The Milky Way.",0,4);
+    lcd.printString("   Press A    ",0,5);
+    lcd.drawSprite(WIDTH - 12,HEIGHT - 7,6,11,(int *)arrowd);
+    lcd.drawSprite(1,HEIGHT - 7,6,11,(int *)arrowd);
     lcd.refresh();
+    int story = 0;
     // wait flashing LEDs until start button is pressed 
     while ( pad.check_event(Gamepad::BACK_PRESSED) == false) {
+        if (pad.check_event(Gamepad::A_PRESSED) == true) {
+        lcd.clear();
+        lcd.printString("    Story    ",0,0);
+        lcd.printString("You, The Last ",0,1);
+        lcd.printString("Of The Zonians",0,2);
+        lcd.printString(" Are Captured ",0,3);
+        lcd.printString("Used for Sport",0,4);
+        lcd.printString("    Press A   ",0,5);
+        lcd.drawSprite(WIDTH - 12,HEIGHT - 7,6,11,(int *)arrowd);
+        lcd.drawSprite(1,HEIGHT - 7,6,11,(int *)arrowd);
+        lcd.refresh();
+        story = 1;
+        while (story == 1) {
+        if (pad.check_event(Gamepad::A_PRESSED) == true) {
+            story = 2;
+        }
+        }
+        while (story == 2){
+        lcd.clear();
+        lcd.printString("    Story    ",0,0);
+        lcd.printString("They Name you ",0,1);
+        lcd.printString("'Spaceinvader'",0,2);
+        lcd.printString(" This Is Your ",0,3);
+        lcd.printString("Colosseum,RUN!",0,4);
+        lcd.printString("**Press Back**",0,5);
+        lcd.refresh();
+        if ( pad.check_event(Gamepad::BACK_PRESSED) == true){
+            break;
+            
+            }
+    }
+    break;
+    }
         pad.leds_on();
         wait(0.1);
         pad.leds_off();
@@ -248,11 +299,30 @@
 }
 
 void Controls() {
+    
     lcd.clear();
     lcd.printString("   Controls    ",0,0);
+    lcd.printString("     Aim: ",0,1);
+    lcd.printString("!!!!!!!!!!!!!!",0,2);
+    lcd.printString("AVOID THE BOMB",0,3);
+    lcd.printString("!!!!!!!!!!!!!!",0,4);
+    lcd.printString("    Press X",0,5);
+    lcd.drawSprite(WIDTH - 12,HEIGHT - 7,6,11,(int *)arrowd);
+    lcd.drawSprite(1,HEIGHT - 7,6,11,(int *)arrowd);
     lcd.refresh();
-    // wait flashing LEDs until start button is pressed 
+    // wait flashing LEDs until start button is pressed
     while ( pad.check_event(Gamepad::BACK_PRESSED) == false) {
+    if (pad.check_event(Gamepad::X_PRESSED) == true) { 
+    lcd.clear();
+    lcd.printString("   Controls    ",0,0);
+    lcd.printString("     How: ",0,1);
+    lcd.printString(" Use Joystick ",0,2);
+    lcd.printString("To Move Around",0,3);
+    lcd.printString("  The Screen  ",0,4);
+    lcd.printString("**Press Back**",0,5);
+    lcd.refresh();
+    }
+
         pad.leds_on();
         wait(0.1);
         pad.leds_off();
@@ -264,79 +334,97 @@
 void Credits() {
     lcd.clear();
     lcd.printString("   Credits    ",0,0);
-    lcd.printString("By Henri Rigby    ",0,4);
+    lcd.printString("By Henri Rigby    ",0,3);
     lcd.printString("SID: 201198821    ",0,2);
+    lcd.printString("**Press Back**    ",0,5);
     lcd.refresh();
     // wait flashing LEDs until start button is pressed 
     while ( pad.check_event(Gamepad::BACK_PRESSED) == false) {
-        wait(0.6);
+        wait(1);
         pad.leds_on();
+        pad.tone(1500.0,0.1);
         wait(0.1);
         pad.leds_off();
         wait(0.3);
         pad.leds_on();
+        pad.tone(1200.0,0.4);
         wait(0.4);
         pad.leds_off();
         wait(0.3);
          pad.leds_on();
+         pad.tone(1500.0,0.1);
         wait(0.1);
         pad.leds_off();
         wait(0.6);
         
          pad.leds_on();
+         pad.tone(1500.0,0.1);
         wait(0.1);
         pad.leds_off();
         wait(0.3);
          pad.leds_on();
+         pad.tone(1500.0,0.1);
         wait(0.1);
         pad.leds_off();
         wait(0.6);
         
         pad.leds_on();
+        pad.tone(1200.0,0.4);
         wait(0.4);
         pad.leds_off();
         wait(0.3);
         pad.leds_on();
+        pad.tone(1200.0,0.4);
         wait(0.4);
         pad.leds_off();
         wait(0.3);
         pad.leds_on();
+        pad.tone(1500.0,0.1);
         wait(0.1);
         pad.leds_off();
         wait(0.6);
         
         pad.leds_on();
+        pad.tone(1200.0,0.4);
         wait(0.4);
         pad.leds_off();
         wait(0.3);
          pad.leds_on();
+         pad.tone(1500.0,0.1);
         wait(0.1);
         pad.leds_off();
         wait(0.3);
          pad.leds_on();
+         pad.tone(1500.0,0.1);
         wait(0.1);
         pad.leds_off();
         wait(0.3);
          pad.leds_on();
+         pad.tone(1500.0,0.1);
         wait(0.1);
         pad.leds_off();
         wait(0.6);
         
          pad.leds_on();
+         pad.tone(1200.0,0.4);
         wait(0.4);
         pad.leds_off();
         wait(0.3);
          pad.leds_on();
+         pad.tone(1500.0,0.1);
         wait(0.1);
         pad.leds_off();
         wait(0.3);
          pad.leds_on();
+         pad.tone(1200.0,0.4);
         wait(0.4);
         pad.leds_off();
         wait(0.3);
          pad.leds_on();
+         pad.tone(1200.0,0.4);
         wait(0.4);
         pad.leds_off();
+        
     }
  
 }