Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
UserInteraction/UX.cpp@22:69d7fe739872, 2019-04-30 (annotated)
- Committer:
- shahidsajid
- Date:
- Tue Apr 30 20:36:42 2019 +0000
- Revision:
- 22:69d7fe739872
- Parent:
- 21:a0904159e183
Completed version of the game;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| shahidsajid | 21:a0904159e183 | 1 | #include "UX.h" |
| shahidsajid | 4:55a0509c4874 | 2 | |
| shahidsajid | 4:55a0509c4874 | 3 | |
| shahidsajid | 21:a0904159e183 | 4 | UX::UX() |
| shahidsajid | 4:55a0509c4874 | 5 | { |
| shahidsajid | 4:55a0509c4874 | 6 | |
| shahidsajid | 4:55a0509c4874 | 7 | } |
| shahidsajid | 4:55a0509c4874 | 8 | |
| shahidsajid | 21:a0904159e183 | 9 | UX::~UX() |
| shahidsajid | 4:55a0509c4874 | 10 | { |
| shahidsajid | 4:55a0509c4874 | 11 | |
| shahidsajid | 4:55a0509c4874 | 12 | } |
| shahidsajid | 21:a0904159e183 | 13 | void UX::init() |
| shahidsajid | 6:3e50f2cf4366 | 14 | { |
| shahidsajid | 6:3e50f2cf4366 | 15 | batPad.init(); |
| shahidsajid | 20:9d21599fe350 | 16 | _button_pressed=false; |
| shahidsajid | 4:55a0509c4874 | 17 | } |
| shahidsajid | 22:69d7fe739872 | 18 | void UX::reset(){ |
| shahidsajid | 22:69d7fe739872 | 19 | _button_pressed=false; |
| shahidsajid | 22:69d7fe739872 | 20 | } |
| shahidsajid | 21:a0904159e183 | 21 | int UX::get_a_pressed(){ |
| shahidsajid | 21:a0904159e183 | 22 | int _a_pressed=0; |
| shahidsajid | 21:a0904159e183 | 23 | if (batPad.check_event(Gamepad::A_PRESSED) == true){ |
| shahidsajid | 21:a0904159e183 | 24 | _a_pressed=1; |
| shahidsajid | 21:a0904159e183 | 25 | } |
| shahidsajid | 21:a0904159e183 | 26 | return _a_pressed; |
| shahidsajid | 13:924891519a95 | 27 | } |
| shahidsajid | 21:a0904159e183 | 28 | int UX::get_l_pressed(){ |
| shahidsajid | 21:a0904159e183 | 29 | int _l_pressed=0; |
| shahidsajid | 13:924891519a95 | 30 | if (batPad.check_event(Gamepad::L_PRESSED) == true){ |
| shahidsajid | 15:81a3aaf52647 | 31 | //badPad.tone(750.0,0.1); |
| shahidsajid | 21:a0904159e183 | 32 | _l_pressed=1; |
| shahidsajid | 13:924891519a95 | 33 | } |
| shahidsajid | 21:a0904159e183 | 34 | return _l_pressed; |
| shahidsajid | 6:3e50f2cf4366 | 35 | } |
| shahidsajid | 22:69d7fe739872 | 36 | void UX::first_menu(N5110 &menu_lcd){ |
| shahidsajid | 15:81a3aaf52647 | 37 | menu_lcd.clear(); |
| shahidsajid | 15:81a3aaf52647 | 38 | menu_lcd.printString("HERO CRICKET",5,1); |
| shahidsajid | 15:81a3aaf52647 | 39 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 40 | menu_lcd.printString(" A Game By",5,2); |
| shahidsajid | 21:a0904159e183 | 41 | menu_lcd.printString( " el17szs",5,3); |
| shahidsajid | 15:81a3aaf52647 | 42 | wait(1); |
| shahidsajid | 15:81a3aaf52647 | 43 | menu_lcd.refresh(); |
| shahidsajid | 15:81a3aaf52647 | 44 | menu_lcd.printString("PRESS START..",1,5); |
| shahidsajid | 15:81a3aaf52647 | 45 | wait(1); |
| shahidsajid | 15:81a3aaf52647 | 46 | menu_lcd.refresh(); |
| shahidsajid | 15:81a3aaf52647 | 47 | while (batPad.check_event(Gamepad::START_PRESSED) == false) { |
| shahidsajid | 15:81a3aaf52647 | 48 | printf("2"); |
| shahidsajid | 15:81a3aaf52647 | 49 | batPad.leds_on(); |
| shahidsajid | 15:81a3aaf52647 | 50 | wait(0.1); |
| shahidsajid | 15:81a3aaf52647 | 51 | batPad.leds_off(); |
| shahidsajid | 15:81a3aaf52647 | 52 | wait(0.1); |
| shahidsajid | 15:81a3aaf52647 | 53 | } |
| shahidsajid | 22:69d7fe739872 | 54 | //second_menu(menu_lcd); |
| shahidsajid | 15:81a3aaf52647 | 55 | batPad.leds_off(); |
| shahidsajid | 15:81a3aaf52647 | 56 | } |
| shahidsajid | 21:a0904159e183 | 57 | void UX::second_menu(N5110 &menu_lcd){ |
| shahidsajid | 20:9d21599fe350 | 58 | while (_button_pressed==false){ |
| shahidsajid | 21:a0904159e183 | 59 | menu_options(menu_lcd); |
| shahidsajid | 21:a0904159e183 | 60 | if (batPad.check_event(Gamepad::A_PRESSED) == true){ |
| shahidsajid | 21:a0904159e183 | 61 | _button_pressed=true; |
| shahidsajid | 21:a0904159e183 | 62 | } |
| shahidsajid | 21:a0904159e183 | 63 | if (batPad.check_event(Gamepad::B_PRESSED) == true){ |
| shahidsajid | 22:69d7fe739872 | 64 | printf("HERE1\n"); |
| shahidsajid | 21:a0904159e183 | 65 | rules_menu(menu_lcd); |
| shahidsajid | 21:a0904159e183 | 66 | } |
| shahidsajid | 21:a0904159e183 | 67 | if (batPad.check_event(Gamepad::X_PRESSED) == true){ |
| shahidsajid | 22:69d7fe739872 | 68 | printf("WHAT \n"); |
| shahidsajid | 21:a0904159e183 | 69 | controls_menu(menu_lcd); |
| shahidsajid | 21:a0904159e183 | 70 | |
| shahidsajid | 21:a0904159e183 | 71 | } |
| shahidsajid | 21:a0904159e183 | 72 | |
| shahidsajid | 21:a0904159e183 | 73 | } |
| shahidsajid | 21:a0904159e183 | 74 | |
| shahidsajid | 21:a0904159e183 | 75 | } |
| shahidsajid | 21:a0904159e183 | 76 | void UX::menu_options(N5110 &menu_lcd){ |
| shahidsajid | 20:9d21599fe350 | 77 | batPad.leds_off(); |
| shahidsajid | 20:9d21599fe350 | 78 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 79 | menu_lcd.setContrast(0.5); |
| shahidsajid | 20:9d21599fe350 | 80 | menu_lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); |
| shahidsajid | 20:9d21599fe350 | 81 | menu_lcd.printString("START GAME",2,1); |
| shahidsajid | 20:9d21599fe350 | 82 | menu_lcd.printString("A",70,1); |
| shahidsajid | 20:9d21599fe350 | 83 | menu_lcd.drawCircle(72,11,5,FILL_TRANSPARENT); |
| shahidsajid | 20:9d21599fe350 | 84 | menu_lcd.printString("RULES",2,3); |
| shahidsajid | 20:9d21599fe350 | 85 | menu_lcd.printString("B",70,3); |
| shahidsajid | 20:9d21599fe350 | 86 | menu_lcd.drawCircle(72,27,5,FILL_TRANSPARENT); |
| shahidsajid | 20:9d21599fe350 | 87 | menu_lcd.printString("CONTROLS",2,5); |
| shahidsajid | 21:a0904159e183 | 88 | menu_lcd.printString("X",70,5); |
| shahidsajid | 20:9d21599fe350 | 89 | menu_lcd.drawCircle(72,42,5,FILL_TRANSPARENT); |
| shahidsajid | 20:9d21599fe350 | 90 | menu_lcd.refresh(); |
| shahidsajid | 15:81a3aaf52647 | 91 | } |
| shahidsajid | 21:a0904159e183 | 92 | void UX::rules_menu(N5110 &menu_lcd){ |
| shahidsajid | 21:a0904159e183 | 93 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 94 | menu_lcd.setContrast(0.5); |
| shahidsajid | 21:a0904159e183 | 95 | menu_lcd.printString("Hit the ball",0,0); |
| shahidsajid | 21:a0904159e183 | 96 | menu_lcd.printString("to score runs",0,1); |
| shahidsajid | 21:a0904159e183 | 97 | menu_lcd.printString("Ball is bolwed",0,3); |
| shahidsajid | 21:a0904159e183 | 98 | menu_lcd.printString("with a tone",0,4); |
| shahidsajid | 21:a0904159e183 | 99 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 100 | wait(5); |
| shahidsajid | 21:a0904159e183 | 101 | |
| shahidsajid | 21:a0904159e183 | 102 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 103 | menu_lcd.setContrast(0.5); |
| shahidsajid | 21:a0904159e183 | 104 | menu_lcd.printString("There are 5",0,0); |
| shahidsajid | 21:a0904159e183 | 105 | menu_lcd.printString("fielders in",0,1); |
| shahidsajid | 22:69d7fe739872 | 106 | menu_lcd.printString("the outfield ",0,2); |
| shahidsajid | 21:a0904159e183 | 107 | menu_lcd.printString("marked by",0,3); |
| shahidsajid | 21:a0904159e183 | 108 | menu_lcd.printString("white circles",0,4); |
| shahidsajid | 21:a0904159e183 | 109 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 110 | wait(5); |
| shahidsajid | 21:a0904159e183 | 111 | |
| shahidsajid | 21:a0904159e183 | 112 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 113 | menu_lcd.setContrast(0.5); |
| shahidsajid | 21:a0904159e183 | 114 | menu_lcd.printString("SCORING RUNS",0,0); |
| shahidsajid | 21:a0904159e183 | 115 | menu_lcd.printString("Lofted Hit:",0,2); |
| shahidsajid | 21:a0904159e183 | 116 | menu_lcd.printString("Hit In between ",0,3); |
| shahidsajid | 21:a0904159e183 | 117 | menu_lcd.printString("the fielders ",0,4); |
| shahidsajid | 21:a0904159e183 | 118 | menu_lcd.printString("is 6 runs",0,5); |
| shahidsajid | 21:a0904159e183 | 119 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 120 | wait(5); |
| shahidsajid | 21:a0904159e183 | 121 | |
| shahidsajid | 21:a0904159e183 | 122 | |
| shahidsajid | 21:a0904159e183 | 123 | |
| shahidsajid | 21:a0904159e183 | 124 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 125 | menu_lcd.setContrast(0.5); |
| shahidsajid | 21:a0904159e183 | 126 | menu_lcd.printString("SCORING RUNS",0,0); |
| shahidsajid | 21:a0904159e183 | 127 | menu_lcd.printString("Normal Hit:",0,2); |
| shahidsajid | 21:a0904159e183 | 128 | menu_lcd.printString("Hit In between ",0,3); |
| shahidsajid | 21:a0904159e183 | 129 | menu_lcd.printString("the fielders ",0,4); |
| shahidsajid | 21:a0904159e183 | 130 | menu_lcd.printString("is 4 runs",0,5); |
| shahidsajid | 21:a0904159e183 | 131 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 132 | wait(5); |
| shahidsajid | 21:a0904159e183 | 133 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 134 | menu_lcd.setContrast(0.5); |
| shahidsajid | 21:a0904159e183 | 135 | menu_lcd.printString("SCORING RUNS",0,0); |
| shahidsajid | 21:a0904159e183 | 136 | menu_lcd.printString("Normal Hit:",0,2); |
| shahidsajid | 21:a0904159e183 | 137 | menu_lcd.printString("Hit to fielder ",0,3); |
| shahidsajid | 21:a0904159e183 | 138 | menu_lcd.printString("inside circle ",0,4); |
| shahidsajid | 21:a0904159e183 | 139 | menu_lcd.printString("is 1 run",0,5); |
| shahidsajid | 21:a0904159e183 | 140 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 141 | wait(5); |
| shahidsajid | 21:a0904159e183 | 142 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 143 | menu_lcd.printString("SCORING RUNS",0,0); |
| shahidsajid | 21:a0904159e183 | 144 | menu_lcd.printString("Normal Hit:",0,2); |
| shahidsajid | 21:a0904159e183 | 145 | menu_lcd.printString("Hit to fielder ",0,3); |
| shahidsajid | 21:a0904159e183 | 146 | menu_lcd.printString("out of circle ",0,4); |
| shahidsajid | 21:a0904159e183 | 147 | menu_lcd.printString("is 2 runs",0,5); |
| shahidsajid | 21:a0904159e183 | 148 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 149 | wait(5); |
| shahidsajid | 21:a0904159e183 | 150 | |
| shahidsajid | 21:a0904159e183 | 151 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 152 | menu_lcd.printString("GETTING OUT",0,0); |
| shahidsajid | 21:a0904159e183 | 153 | menu_lcd.printString("CAUGHT:",0,2); |
| shahidsajid | 21:a0904159e183 | 154 | menu_lcd.printString("A Lofted Hit",0,3); |
| shahidsajid | 21:a0904159e183 | 155 | menu_lcd.printString("to a fiedler",0,4); |
| shahidsajid | 21:a0904159e183 | 156 | menu_lcd.printString("is OUT",0,5); |
| shahidsajid | 21:a0904159e183 | 157 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 158 | wait(5); |
| shahidsajid | 21:a0904159e183 | 159 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 160 | menu_lcd.printString("GETTING OUT",0,0); |
| shahidsajid | 21:a0904159e183 | 161 | menu_lcd.printString("BOWLED:",0,2); |
| shahidsajid | 21:a0904159e183 | 162 | menu_lcd.printString("If you do ",0,3); |
| shahidsajid | 21:a0904159e183 | 163 | menu_lcd.printString("not hit ball",0,4); |
| shahidsajid | 21:a0904159e183 | 164 | menu_lcd.printString("It is OUT",0,5); |
| shahidsajid | 21:a0904159e183 | 165 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 166 | wait(5); |
| shahidsajid | 21:a0904159e183 | 167 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 168 | menu_lcd.printString("10 balls are",0,1); |
| shahidsajid | 21:a0904159e183 | 169 | menu_lcd.printString("given to score",0,2); |
| shahidsajid | 21:a0904159e183 | 170 | menu_lcd.printString("a set target",0,3); |
| shahidsajid | 21:a0904159e183 | 171 | menu_lcd.printString("GOOD LUCK!!!",0,4); |
| shahidsajid | 21:a0904159e183 | 172 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 173 | wait(5); |
| shahidsajid | 15:81a3aaf52647 | 174 | } |
| shahidsajid | 21:a0904159e183 | 175 | void UX::controls_menu(N5110 &menu_lcd){ |
| shahidsajid | 21:a0904159e183 | 176 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 177 | menu_lcd.printString("Hold down A to ",0,2); |
| shahidsajid | 21:a0904159e183 | 178 | menu_lcd.printString("hit the ball",0,3); |
| shahidsajid | 21:a0904159e183 | 179 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 180 | wait(5); |
| shahidsajid | 21:a0904159e183 | 181 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 182 | menu_lcd.printString("Hold down A ",0,1); |
| shahidsajid | 21:a0904159e183 | 183 | menu_lcd.printString("and L for ",0,2); |
| shahidsajid | 21:a0904159e183 | 184 | menu_lcd.printString("a lofted hit",0,3); |
| shahidsajid | 21:a0904159e183 | 185 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 186 | wait(5); |
| shahidsajid | 21:a0904159e183 | 187 | menu_lcd.clear(); |
| shahidsajid | 21:a0904159e183 | 188 | menu_lcd.printString("Move joystick to",0,1); |
| shahidsajid | 21:a0904159e183 | 189 | menu_lcd.printString("the direction",0,2); |
| shahidsajid | 21:a0904159e183 | 190 | menu_lcd.printString("you want to",0,3); |
| shahidsajid | 21:a0904159e183 | 191 | menu_lcd.printString("hit the ball",0,4); |
| shahidsajid | 21:a0904159e183 | 192 | menu_lcd.refresh(); |
| shahidsajid | 21:a0904159e183 | 193 | wait(5); |
| shahidsajid | 21:a0904159e183 | 194 | } |
| shahidsajid | 21:a0904159e183 | 195 | void UX::game_over_menu(N5110 &menu_lcd,int option){ |
| shahidsajid | 18:a260ce8db9e7 | 196 | if (option==1){ |
| shahidsajid | 18:a260ce8db9e7 | 197 | menu_lcd.clear(); |
| shahidsajid | 18:a260ce8db9e7 | 198 | menu_lcd.printString("GAME LOST",2,1); |
| shahidsajid | 18:a260ce8db9e7 | 199 | menu_lcd.printString("NO MORE BALLS LEFT",2,3); |
| shahidsajid | 18:a260ce8db9e7 | 200 | menu_lcd.refresh(); |
| shahidsajid | 18:a260ce8db9e7 | 201 | wait(5); |
| shahidsajid | 18:a260ce8db9e7 | 202 | } |
| shahidsajid | 19:e1ded5acb64a | 203 | if (option==2){ |
| shahidsajid | 19:e1ded5acb64a | 204 | menu_lcd.clear(); |
| shahidsajid | 19:e1ded5acb64a | 205 | menu_lcd.printString("GAME LOST",2,1); |
| shahidsajid | 19:e1ded5acb64a | 206 | menu_lcd.printString("BOWLED",2,3); |
| shahidsajid | 19:e1ded5acb64a | 207 | menu_lcd.refresh(); |
| shahidsajid | 19:e1ded5acb64a | 208 | wait(5); |
| shahidsajid | 19:e1ded5acb64a | 209 | } |
| shahidsajid | 19:e1ded5acb64a | 210 | if (option==3){ |
| shahidsajid | 19:e1ded5acb64a | 211 | menu_lcd.clear(); |
| shahidsajid | 19:e1ded5acb64a | 212 | menu_lcd.printString("GAME LOST",2,1); |
| shahidsajid | 19:e1ded5acb64a | 213 | menu_lcd.printString("CAUGHT",2,3); |
| shahidsajid | 19:e1ded5acb64a | 214 | menu_lcd.refresh(); |
| shahidsajid | 19:e1ded5acb64a | 215 | wait(5); |
| shahidsajid | 19:e1ded5acb64a | 216 | } |
| shahidsajid | 19:e1ded5acb64a | 217 | |
| shahidsajid | 18:a260ce8db9e7 | 218 | } |
| shahidsajid | 21:a0904159e183 | 219 | void UX::victory_menu(N5110 &menu_lcd){ |
| shahidsajid | 18:a260ce8db9e7 | 220 | menu_lcd.clear(); |
| shahidsajid | 18:a260ce8db9e7 | 221 | menu_lcd.printString("CONGRATS!!",2,1); |
| shahidsajid | 18:a260ce8db9e7 | 222 | menu_lcd.printString("YOU HAVE WON",2,3); |
| shahidsajid | 18:a260ce8db9e7 | 223 | menu_lcd.refresh(); |
| shahidsajid | 18:a260ce8db9e7 | 224 | wait(5); |
| shahidsajid | 18:a260ce8db9e7 | 225 | } |
| shahidsajid | 21:a0904159e183 | 226 | void UX::info_screen(N5110 &menu_lcd, int target){ |
| shahidsajid | 18:a260ce8db9e7 | 227 | menu_lcd.clear(); |
| shahidsajid | 20:9d21599fe350 | 228 | menu_lcd.printString("YOU ARE GIVEN",2,1); |
| shahidsajid | 20:9d21599fe350 | 229 | menu_lcd.printString("10 BALLS ",3,2); |
| shahidsajid | 19:e1ded5acb64a | 230 | menu_lcd.refresh(); |
| shahidsajid | 20:9d21599fe350 | 231 | wait(0.5); |
| shahidsajid | 18:a260ce8db9e7 | 232 | char buffer[5]; |
| shahidsajid | 18:a260ce8db9e7 | 233 | int length=sprintf(buffer,"SCORE %i RUNS",target); |
| shahidsajid | 20:9d21599fe350 | 234 | menu_lcd.printString(buffer,2,4); |
| shahidsajid | 20:9d21599fe350 | 235 | menu_lcd.refresh(); |
| shahidsajid | 20:9d21599fe350 | 236 | wait(0.5); |
| shahidsajid | 20:9d21599fe350 | 237 | menu_lcd.printString("GOOD LUCK!!!",0,5); |
| shahidsajid | 18:a260ce8db9e7 | 238 | menu_lcd.refresh(); |
| shahidsajid | 22:69d7fe739872 | 239 | wait(1); |
| shahidsajid | 18:a260ce8db9e7 | 240 | } |
| shahidsajid | 18:a260ce8db9e7 | 241 |