ELEC2645 (2018/19) / Mbed 2 deprecated el17szs

Dependencies:   mbed

Revision:
21:a0904159e183
Parent:
20:9d21599fe350
Child:
22:69d7fe739872
Child:
24:23fd6b451db7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UserInteraction/UX.cpp	Tue Apr 30 13:17:14 2019 +0000
@@ -0,0 +1,247 @@
+#include "UX.h"
+
+
+UX::UX()
+{
+
+}
+
+UX::~UX()
+{
+
+}
+void UX::init()
+{   
+    batPad.init();
+    _button_pressed=false;
+}
+int UX::get_a_pressed(){
+    int _a_pressed=0;
+    if (batPad.check_event(Gamepad::A_PRESSED) == true){
+        _a_pressed=1;
+    }
+    return _a_pressed;
+}
+int UX::get_l_pressed(){
+     int _l_pressed=0;
+     if (batPad.check_event(Gamepad::L_PRESSED) == true){
+        //badPad.tone(750.0,0.1);
+           _l_pressed=1;
+    }
+    return _l_pressed;
+}
+void UX::first_menu(N5110 &menu_lcd,Gamepad &pad){
+    menu_lcd.clear();
+    menu_lcd.printString("HERO CRICKET",5,1);
+    menu_lcd.refresh();
+    menu_lcd.printString("  A Game By",5,2);
+    menu_lcd.printString( "   el17szs",5,3);
+    wait(1);
+    menu_lcd.refresh();
+    menu_lcd.printString("PRESS START..",1,5);
+    wait(1);
+    menu_lcd.refresh();
+    while (batPad.check_event(Gamepad::START_PRESSED) == false) {
+            printf("2");
+            batPad.leds_on();
+            wait(0.1);
+            batPad.leds_off();
+            wait(0.1);
+        }
+        second_menu(menu_lcd);
+        batPad.leds_off();
+}
+void UX::second_menu(N5110 &menu_lcd){
+    while (_button_pressed==false){
+        menu_options(menu_lcd);
+        if (batPad.check_event(Gamepad::A_PRESSED) == true){
+            _button_pressed=true;
+        }
+        if (batPad.check_event(Gamepad::B_PRESSED) == true){
+             rules_menu(menu_lcd);
+        }
+        if (batPad.check_event(Gamepad::X_PRESSED) == true){
+             controls_menu(menu_lcd);
+             
+        }
+        
+    }
+    
+}
+void UX::menu_options(N5110 &menu_lcd){
+        batPad.leds_off();
+        menu_lcd.clear();
+        menu_lcd.setContrast(0.5);
+        menu_lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT);
+        menu_lcd.printString("START GAME",2,1);
+        menu_lcd.printString("A",70,1);
+        menu_lcd.drawCircle(72,11,5,FILL_TRANSPARENT);
+        menu_lcd.printString("RULES",2,3);
+        menu_lcd.printString("B",70,3);
+        menu_lcd.drawCircle(72,27,5,FILL_TRANSPARENT);
+        menu_lcd.printString("CONTROLS",2,5);
+        menu_lcd.printString("X",70,5);
+        menu_lcd.drawCircle(72,42,5,FILL_TRANSPARENT);
+        menu_lcd.refresh();
+}
+void UX::rules_menu(N5110 &menu_lcd){
+     menu_lcd.clear();
+     menu_lcd.setContrast(0.5);
+     menu_lcd.printString("Hit the ball",0,0);
+     menu_lcd.printString("to score runs",0,1);
+     menu_lcd.printString("Ball is bolwed",0,3);
+     menu_lcd.printString("with a tone",0,4);
+     menu_lcd.refresh();
+     wait(5); 
+     
+      menu_lcd.clear();
+     menu_lcd.setContrast(0.5);
+     menu_lcd.printString("There are 5",0,0);
+     menu_lcd.printString("fielders in",0,1);
+     menu_lcd.printString("the ",0,1);
+     menu_lcd.printString("marked by",0,3);
+     menu_lcd.printString("white circles",0,4);
+     menu_lcd.refresh();
+     wait(5); 
+     
+     menu_lcd.clear();
+     menu_lcd.setContrast(0.5);
+     menu_lcd.printString("SCORING RUNS",0,0);
+     menu_lcd.printString("Lofted Hit:",0,2);
+     menu_lcd.printString("Hit In between ",0,3);
+     menu_lcd.printString("the fielders ",0,4);
+     menu_lcd.printString("is 6 runs",0,5);
+     menu_lcd.refresh();
+     wait(5);
+     
+     
+     
+     menu_lcd.clear();
+     menu_lcd.setContrast(0.5);
+     menu_lcd.printString("SCORING RUNS",0,0);
+     menu_lcd.printString("Normal Hit:",0,2);
+     menu_lcd.printString("Hit In between ",0,3);
+     menu_lcd.printString("the fielders ",0,4);
+     menu_lcd.printString("is 4 runs",0,5);
+     menu_lcd.refresh();
+     wait(5);
+      menu_lcd.clear();
+     menu_lcd.setContrast(0.5);
+     menu_lcd.printString("SCORING RUNS",0,0);
+     menu_lcd.printString("Normal Hit:",0,2);
+     menu_lcd.printString("Hit to fielder ",0,3);
+     menu_lcd.printString("inside circle ",0,4);
+     menu_lcd.printString("is 1 run",0,5);
+     menu_lcd.refresh();
+     wait(5); 
+     menu_lcd.clear();
+     menu_lcd.printString("SCORING RUNS",0,0);
+     menu_lcd.printString("Normal Hit:",0,2);
+     menu_lcd.printString("Hit to fielder ",0,3);
+     menu_lcd.printString("out of circle ",0,4);
+     menu_lcd.printString("is 2 runs",0,5);
+     menu_lcd.refresh();
+     wait(5);
+     
+     menu_lcd.clear();
+     menu_lcd.printString("GETTING OUT",0,0);
+     menu_lcd.printString("CAUGHT:",0,2);
+     menu_lcd.printString("A Lofted Hit",0,3);
+     menu_lcd.printString("to a fiedler",0,4);
+     menu_lcd.printString("is OUT",0,5);
+     menu_lcd.refresh();
+     wait(5);  
+     menu_lcd.clear();
+     menu_lcd.printString("GETTING OUT",0,0);
+     menu_lcd.printString("BOWLED:",0,2);
+     menu_lcd.printString("If you do ",0,3);
+     menu_lcd.printString("not hit ball",0,4);
+     menu_lcd.printString("It is OUT",0,5);
+     menu_lcd.refresh();
+     wait(5);   
+     menu_lcd.clear();
+     menu_lcd.printString("10 balls are",0,1);
+     menu_lcd.printString("given to score",0,2);
+     menu_lcd.printString("a set target",0,3);
+     menu_lcd.printString("GOOD LUCK!!!",0,4);
+     menu_lcd.refresh();
+     wait(5);          
+}  
+void UX::controls_menu(N5110 &menu_lcd){
+    menu_lcd.clear();
+    menu_lcd.printString("Hold down A to ",0,2);
+    menu_lcd.printString("hit the ball",0,3);
+    menu_lcd.refresh();
+    wait(5);
+    menu_lcd.clear();
+    menu_lcd.printString("Hold down A ",0,1);
+    menu_lcd.printString("and L for ",0,2);
+    menu_lcd.printString("a lofted hit",0,3);
+    menu_lcd.refresh();
+    wait(5);
+    menu_lcd.clear();
+    menu_lcd.printString("Move joystick to",0,1);
+    menu_lcd.printString("the direction",0,2);
+    menu_lcd.printString("you want to",0,3);
+    menu_lcd.printString("hit the ball",0,4);
+    menu_lcd.refresh();
+    wait(5);
+ }   
+void UX::game_over_menu(N5110 &menu_lcd,int option){
+    if (option==1){
+        menu_lcd.clear();
+        menu_lcd.printString("GAME LOST",2,1);
+        menu_lcd.printString("NO MORE BALLS LEFT",2,3);
+        menu_lcd.refresh();
+        wait(5);
+    }
+    if (option==2){
+        menu_lcd.clear();
+        menu_lcd.printString("GAME LOST",2,1);
+        menu_lcd.printString("BOWLED",2,3);
+        menu_lcd.refresh();
+        wait(5);
+    }
+    if (option==3){
+        menu_lcd.clear();
+        menu_lcd.printString("GAME LOST",2,1);
+        menu_lcd.printString("CAUGHT",2,3);
+        menu_lcd.refresh();
+        wait(5);
+    }
+    
+}
+void UX::victory_menu(N5110 &menu_lcd){
+    menu_lcd.clear();
+    menu_lcd.printString("CONGRATS!!",2,1);
+    menu_lcd.printString("YOU HAVE WON",2,3);
+    menu_lcd.refresh();
+    wait(5);
+}
+void UX::info_screen(N5110 &menu_lcd, int target){
+    menu_lcd.clear();
+    menu_lcd.printString("YOU ARE GIVEN",2,1); 
+    menu_lcd.printString("10 BALLS ",3,2); 
+    menu_lcd.refresh();
+    wait(0.5);
+    char buffer[5];
+    int length=sprintf(buffer,"SCORE %i RUNS",target);
+    menu_lcd.printString(buffer,2,4);
+    menu_lcd.refresh();
+    wait(0.5);
+    menu_lcd.printString("GOOD LUCK!!!",0,5);
+    menu_lcd.refresh();
+    int i=0;
+    /*
+    while (i<=10){
+        batPad.leds_on();
+        wait(0.1);
+        batPad.leds_off();
+        wait(0.1);
+        i++;
+    }
+    */
+    wait(3);
+    
+}
+