ELEC2645 (2016/17) / Mbed 2 deprecated 2645_Project_el15as

Dependencies:   mbed

Revision:
8:c3cf8d1057bb
Parent:
7:b54323241435
Child:
9:35f992fd407b
--- a/main.cpp	Tue May 02 00:20:44 2017 +0000
+++ b/main.cpp	Wed May 03 14:25:55 2017 +0000
@@ -1,18 +1,19 @@
 #include "mbed.h"
 #include "N5110.h"
 #include "Gamepad.h"
-#include "Player.h"
 #include "GameEngine.h"
-#include "Menu.h"
+#include "MenuEngine.h"
 
 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
 Serial pc(USBTX, USBRX); // tx, rx
 Gamepad pad;
 GameEngine game;
-Player player;
-Menu menu;
+MenuEngine menu;
 
 void update_screen();
+void welcome();
+
+bool showStart = true;
 
 int main()
 {
@@ -21,15 +22,50 @@
 
     lcd.normalMode();
     lcd.setBrightness(1);
-    game.init(4);
-    lcd.refresh();
 
-    while(1) {  // loop forever
+    while (!pad.check_event(Gamepad::START_PRESSED)) {
+        welcome();
+    }
 
-        game.read_input(pad,pc);
-        game.update(pad, pc, lcd);
-        game.draw(lcd);
+    while(1)
+    {
+        menu.init();
+        while (!menu.gameStarted)
+        {
+            menu.read_input(pad, pc);
+            menu.update(pad, pc, lcd);
+            menu.draw(lcd,pc);
+            menu.check_finish(pad, lcd, pc);
+            wait(1.0f/10);
+        }
+        game.init(menu.selectedLevel, menu.soundIsOn, pad);
+        while (game.isActive)
+        {
+            game.read_input(pad,pc);
+            game.update(pad, pc, lcd);
+            game.draw(lcd);
+            game.check_finish(pad, lcd);
+            wait(1.0f/10); // 10 fps
+        }
+    }
+}
 
-        wait(1.0f/10); // 10 fps
+void welcome()
+{
+    lcd.clear();
+    lcd.printString("Escape", 5, 0);
+    lcd.printString("is", 30, 1);
+    lcd.printString("an", 35, 2);
+    lcd.printString("Ellusion", 30, 3);
+    if (showStart)
+    {
+        lcd.printString("Press START", 10, 5);
+        showStart = false;
     }
+    else
+    {
+        showStart = true;
+    }
+    lcd.refresh();
+    wait(0.5);
 }
\ No newline at end of file