ELEC2645 (2018/19) / Mbed 2 deprecated el17ebs

Dependencies:   mbed FATFileSystem

Revision:
2:81cfa8310f55
Parent:
1:6179c2d67d19
Child:
3:a8960004d261
--- a/Menu/Menu.cpp	Mon Mar 18 11:02:06 2019 +0000
+++ b/Menu/Menu.cpp	Wed Mar 20 18:23:22 2019 +0000
@@ -29,13 +29,101 @@
 void Menu::print_menu(N5110 &lcd)
 {
     lcd.clear();
-    lcd.printString("Use joystick",0,0);
-    lcd.printString("to select",0,1);
-    lcd.printString("Start Game",0,2);
-    lcd.printString("Highscores",0,3);
-    lcd.printString("Settings",0,4);
+    lcd.printString("Use joystick",0,2);
+    lcd.printString("to select !",0,3);
+    wait(2);
+    lcd.clear();
+    lcd.printString("Start Game",10,0);
+    lcd.printString("Highscores",10,2);
+    lcd.printString("Settings",10,4);
+    lcd.refresh();
+}
+
+void Menu::print_highscores(N5110 &lcd)
+{
+    lcd.clear();
+    lcd.printString("Highscores",0,2);
+    lcd.refresh();
+}
+
+void Menu::print_settings(N5110 &lcd)
+{
+    lcd.clear();
+    lcd.printString("Settings",0,2);
+    lcd.refresh();
+}
+
+void Menu::print_start(N5110 &lcd)
+{
+    lcd.clear();
+    lcd.printString("Start?",0,2);
     lcd.refresh();
 }
 
+//Uses joystick direction to select menu option
+MenuChoices Menu::menu_choice(MenuChoices menu, Gamepad &pad, N5110 &lcd)
+{
+    
+    int d = pad.get_direction();
+    MenuChoices m = menu;
+
+    switch(m) {
+        //cursor on start
+        case 0:
+            lcd.drawRect(0,16,6,8,FILL_WHITE);
+            lcd.drawRect(0,32,6,8,FILL_WHITE);
+            lcd.drawRect(0,0,6,8,FILL_TRANSPARENT);  
+
+            switch(d) {
+                    case 0: //joystick centered
+                        m = START;
+                        break;
+                    case 1: //joystick up
+                        m = SETTINGS;
+                        break;
+                    case 5: //joystick down
+                        m = HIGHSCORES;
+                        break;
+                }
+            break;
+        //cursor on highscores
+        case 1:
+            lcd.drawRect(0,0,6,8,FILL_WHITE);
+            lcd.drawRect(0,32,6,8,FILL_WHITE);
+            lcd.drawRect(0,16,6,8,FILL_TRANSPARENT);
+
+            switch(d) {
+                    case 0: //joystick centered
+                        m = HIGHSCORES;
+                        break;
+                    case 1: //joystick up
+                        m = START;
+                        break;
+                    case 5: //joystick down
+                        m = SETTINGS;
+                        break;
+                }
+            break;
+        //cursor on settings
+        case 2:
+            lcd.drawRect(0,0,6,8,FILL_WHITE);
+            lcd.drawRect(0,16,6,8,FILL_WHITE);
+            lcd.drawRect(0,32,6,8,FILL_TRANSPARENT);
+        
+            switch(d) {
+                    case 0: //joystick centered
+                        m = SETTINGS;
+                        break;
+                    case 1: //joystick up
+                        m = HIGHSCORES;
+                        break;
+                    case 5: //joystick down
+                        m = START;
+                        break;
+                }
+            break;
+    } 
+    return m;
+}
 
 //private methods