Stick_Runner
Dependencies: FXOS8700CQ Gamepad N5110 SDFileSystem mbed
main.cpp@2:98a41609c827, 2017-05-02 (annotated)
- Committer:
- el15ss
- Date:
- Tue May 02 18:42:45 2017 +0000
- Revision:
- 2:98a41609c827
- Parent:
- 1:db9ff66f67c8
- Child:
- 3:0c690f1c04d8
Added SD card functionality
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el15ss | 1:db9ff66f67c8 | 1 | /***************************************************** |
el15ss | 1:db9ff66f67c8 | 2 | Libraries and modules used * |
el15ss | 1:db9ff66f67c8 | 3 | ******************************************************/ |
el15ss | 0:12cfe63faa6a | 4 | #include "mbed.h" |
el15ss | 0:12cfe63faa6a | 5 | #include "Gamepad.h" |
el15ss | 0:12cfe63faa6a | 6 | #include "N5110.h" |
el15ss | 0:12cfe63faa6a | 7 | #include "Character.h" |
el15ss | 0:12cfe63faa6a | 8 | #include "Obstacles.h" |
el15ss | 0:12cfe63faa6a | 9 | #include "Gems.h" |
el15ss | 2:98a41609c827 | 10 | #include "SDFileSystem.h" |
el15ss | 2:98a41609c827 | 11 | |
el15ss | 0:12cfe63faa6a | 12 | |
el15ss | 1:db9ff66f67c8 | 13 | #define No_OBS 8 |
el15ss | 1:db9ff66f67c8 | 14 | #define No_GEMS 4 |
el15ss | 0:12cfe63faa6a | 15 | |
el15ss | 2:98a41609c827 | 16 | int i,j,counter,highScore; |
el15ss | 2:98a41609c827 | 17 | char score[50]; |
el15ss | 0:12cfe63faa6a | 18 | |
el15ss | 1:db9ff66f67c8 | 19 | //Structs |
el15ss | 0:12cfe63faa6a | 20 | struct UserInput { |
el15ss | 0:12cfe63faa6a | 21 | Direction d; |
el15ss | 0:12cfe63faa6a | 22 | float mag; |
el15ss | 0:12cfe63faa6a | 23 | }; |
el15ss | 1:db9ff66f67c8 | 24 | /* Class Objects */ |
el15ss | 0:12cfe63faa6a | 25 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
el15ss | 0:12cfe63faa6a | 26 | Gamepad pad; |
el15ss | 0:12cfe63faa6a | 27 | Character c; |
el15ss | 1:db9ff66f67c8 | 28 | Obstacles obstacle[No_OBS]; |
el15ss | 1:db9ff66f67c8 | 29 | Gems gems[No_GEMS],g; |
el15ss | 0:12cfe63faa6a | 30 | |
el15ss | 2:98a41609c827 | 31 | SDFileSystem sd(PTE3,PTE1,PTE2,PTE4,"sd"); |
el15ss | 2:98a41609c827 | 32 | FILE *file; |
el15ss | 2:98a41609c827 | 33 | |
el15ss | 0:12cfe63faa6a | 34 | |
el15ss | 1:db9ff66f67c8 | 35 | /* Function Prototypes */ |
el15ss | 0:12cfe63faa6a | 36 | void init(); |
el15ss | 0:12cfe63faa6a | 37 | void update_game(UserInput input); |
el15ss | 0:12cfe63faa6a | 38 | void render(); |
el15ss | 0:12cfe63faa6a | 39 | void welcome(); |
el15ss | 0:12cfe63faa6a | 40 | void menu(); |
el15ss | 0:12cfe63faa6a | 41 | void over(); |
el15ss | 0:12cfe63faa6a | 42 | void Instructions(); |
el15ss | 1:db9ff66f67c8 | 43 | |
el15ss | 1:db9ff66f67c8 | 44 | |
el15ss | 1:db9ff66f67c8 | 45 | /* Functions */ |
el15ss | 1:db9ff66f67c8 | 46 | |
el15ss | 0:12cfe63faa6a | 47 | int main() |
el15ss | 0:12cfe63faa6a | 48 | { |
el15ss | 1:db9ff66f67c8 | 49 | int fps = 8; |
el15ss | 0:12cfe63faa6a | 50 | |
el15ss | 1:db9ff66f67c8 | 51 | /* Intialization */ |
el15ss | 0:12cfe63faa6a | 52 | init(); |
el15ss | 1:db9ff66f67c8 | 53 | |
el15ss | 1:db9ff66f67c8 | 54 | /* Drawing the intial frame */ |
el15ss | 0:12cfe63faa6a | 55 | welcome(); |
el15ss | 0:12cfe63faa6a | 56 | wait(1.0f/fps); |
el15ss | 0:12cfe63faa6a | 57 | |
el15ss | 0:12cfe63faa6a | 58 | |
el15ss | 1:db9ff66f67c8 | 59 | |
el15ss | 1:db9ff66f67c8 | 60 | render(); |
el15ss | 0:12cfe63faa6a | 61 | wait(1.0f/fps); |
el15ss | 0:12cfe63faa6a | 62 | |
el15ss | 1:db9ff66f67c8 | 63 | /* Main game loop to read input, render the display and update the game state */ |
el15ss | 0:12cfe63faa6a | 64 | // game loop - read input, update the game state and render the display |
el15ss | 0:12cfe63faa6a | 65 | while (1) { |
el15ss | 0:12cfe63faa6a | 66 | |
el15ss | 2:98a41609c827 | 67 | counter++; |
el15ss | 0:12cfe63faa6a | 68 | |
el15ss | 1:db9ff66f67c8 | 69 | c.updateCharacter(pad.get_direction(),pad.get_mag()); |
el15ss | 0:12cfe63faa6a | 70 | if(pad.check_event(Gamepad::BACK_PRESSED)) |
el15ss | 0:12cfe63faa6a | 71 | { |
el15ss | 0:12cfe63faa6a | 72 | lcd.clear(); |
el15ss | 0:12cfe63faa6a | 73 | lcd.refresh(); |
el15ss | 1:db9ff66f67c8 | 74 | menu(); |
el15ss | 0:12cfe63faa6a | 75 | } |
el15ss | 0:12cfe63faa6a | 76 | |
el15ss | 1:db9ff66f67c8 | 77 | for(i=0;i<No_OBS;i++) |
el15ss | 0:12cfe63faa6a | 78 | { |
el15ss | 1:db9ff66f67c8 | 79 | obstacle[i].obstacleStatus(obstacle[i].getObstaclePos()); |
el15ss | 0:12cfe63faa6a | 80 | |
el15ss | 1:db9ff66f67c8 | 81 | if(obstacle[i].getObstacleStatus() == false) |
el15ss | 0:12cfe63faa6a | 82 | { |
el15ss | 0:12cfe63faa6a | 83 | obstacle[i].init(); |
el15ss | 0:12cfe63faa6a | 84 | } |
el15ss | 1:db9ff66f67c8 | 85 | c.characterStatus(obstacle[i].getObstaclePos()); |
el15ss | 2:98a41609c827 | 86 | // obstacle[i].obstacleStatus(c.getCharacterPos()); |
el15ss | 1:db9ff66f67c8 | 87 | |
el15ss | 0:12cfe63faa6a | 88 | } |
el15ss | 0:12cfe63faa6a | 89 | |
el15ss | 0:12cfe63faa6a | 90 | |
el15ss | 1:db9ff66f67c8 | 91 | for(j=0;j<No_GEMS;j++) |
el15ss | 0:12cfe63faa6a | 92 | { |
el15ss | 1:db9ff66f67c8 | 93 | gems[j].gemStatus(c.getCharacterPos()); |
el15ss | 0:12cfe63faa6a | 94 | |
el15ss | 1:db9ff66f67c8 | 95 | if(gems[j].getGemStatus() == false) |
el15ss | 0:12cfe63faa6a | 96 | { |
el15ss | 0:12cfe63faa6a | 97 | gems[j].init(); |
el15ss | 2:98a41609c827 | 98 | |
el15ss | 0:12cfe63faa6a | 99 | } |
el15ss | 1:db9ff66f67c8 | 100 | |
el15ss | 1:db9ff66f67c8 | 101 | |
el15ss | 0:12cfe63faa6a | 102 | } |
el15ss | 2:98a41609c827 | 103 | |
el15ss | 2:98a41609c827 | 104 | //To make the obstacles and gems move along the screen |
el15ss | 0:12cfe63faa6a | 105 | i =0; |
el15ss | 0:12cfe63faa6a | 106 | |
el15ss | 1:db9ff66f67c8 | 107 | for(i=0;i<No_OBS;i++) |
el15ss | 1:db9ff66f67c8 | 108 | { |
el15ss | 1:db9ff66f67c8 | 109 | obstacle[i].updateObstacle(); |
el15ss | 1:db9ff66f67c8 | 110 | } |
el15ss | 0:12cfe63faa6a | 111 | |
el15ss | 0:12cfe63faa6a | 112 | |
el15ss | 0:12cfe63faa6a | 113 | j =0; |
el15ss | 0:12cfe63faa6a | 114 | |
el15ss | 1:db9ff66f67c8 | 115 | for(j=0;j<No_GEMS;j++) |
el15ss | 1:db9ff66f67c8 | 116 | { |
el15ss | 1:db9ff66f67c8 | 117 | gems[j].updateGems(); |
el15ss | 2:98a41609c827 | 118 | |
el15ss | 1:db9ff66f67c8 | 119 | } |
el15ss | 0:12cfe63faa6a | 120 | |
el15ss | 0:12cfe63faa6a | 121 | render(); |
el15ss | 0:12cfe63faa6a | 122 | |
el15ss | 0:12cfe63faa6a | 123 | wait(1.0f/fps); |
el15ss | 0:12cfe63faa6a | 124 | } |
el15ss | 0:12cfe63faa6a | 125 | } |
el15ss | 0:12cfe63faa6a | 126 | |
el15ss | 0:12cfe63faa6a | 127 | void init() |
el15ss | 0:12cfe63faa6a | 128 | { |
el15ss | 2:98a41609c827 | 129 | |
el15ss | 0:12cfe63faa6a | 130 | lcd.init(); |
el15ss | 0:12cfe63faa6a | 131 | pad.init(); |
el15ss | 0:12cfe63faa6a | 132 | c.init(); |
el15ss | 0:12cfe63faa6a | 133 | |
el15ss | 1:db9ff66f67c8 | 134 | for(i=0;i<No_OBS;i++) |
el15ss | 1:db9ff66f67c8 | 135 | { |
el15ss | 1:db9ff66f67c8 | 136 | obstacle[i].init(); |
el15ss | 1:db9ff66f67c8 | 137 | } |
el15ss | 1:db9ff66f67c8 | 138 | |
el15ss | 1:db9ff66f67c8 | 139 | for(j=0;j<No_GEMS;j++) |
el15ss | 1:db9ff66f67c8 | 140 | { |
el15ss | 1:db9ff66f67c8 | 141 | gems[j].init(); |
el15ss | 1:db9ff66f67c8 | 142 | } |
el15ss | 0:12cfe63faa6a | 143 | |
el15ss | 0:12cfe63faa6a | 144 | |
el15ss | 0:12cfe63faa6a | 145 | |
el15ss | 0:12cfe63faa6a | 146 | } |
el15ss | 0:12cfe63faa6a | 147 | |
el15ss | 0:12cfe63faa6a | 148 | void render() |
el15ss | 0:12cfe63faa6a | 149 | { |
el15ss | 2:98a41609c827 | 150 | |
el15ss | 0:12cfe63faa6a | 151 | lcd.clear(); |
el15ss | 1:db9ff66f67c8 | 152 | |
el15ss | 1:db9ff66f67c8 | 153 | if(c.getCharacterStatus()) |
el15ss | 1:db9ff66f67c8 | 154 | { |
el15ss | 1:db9ff66f67c8 | 155 | c.draw(lcd); |
el15ss | 1:db9ff66f67c8 | 156 | } |
el15ss | 2:98a41609c827 | 157 | |
el15ss | 2:98a41609c827 | 158 | if(c.getCharacterStatus() == false) |
el15ss | 2:98a41609c827 | 159 | { |
el15ss | 2:98a41609c827 | 160 | over(); |
el15ss | 2:98a41609c827 | 161 | } |
el15ss | 2:98a41609c827 | 162 | |
el15ss | 2:98a41609c827 | 163 | |
el15ss | 0:12cfe63faa6a | 164 | //obstacle[i].draw(lcd); |
el15ss | 0:12cfe63faa6a | 165 | |
el15ss | 1:db9ff66f67c8 | 166 | for(i=0;i<No_OBS;i++) |
el15ss | 1:db9ff66f67c8 | 167 | { |
el15ss | 1:db9ff66f67c8 | 168 | if(obstacle[i].getObstacleStatus()) |
el15ss | 1:db9ff66f67c8 | 169 | { |
el15ss | 1:db9ff66f67c8 | 170 | obstacle[i].draw(lcd); |
el15ss | 1:db9ff66f67c8 | 171 | } |
el15ss | 1:db9ff66f67c8 | 172 | } |
el15ss | 0:12cfe63faa6a | 173 | |
el15ss | 1:db9ff66f67c8 | 174 | |
el15ss | 1:db9ff66f67c8 | 175 | for(j=0;j<No_GEMS;j++) |
el15ss | 1:db9ff66f67c8 | 176 | { |
el15ss | 1:db9ff66f67c8 | 177 | if(gems[j].getGemStatus()) |
el15ss | 1:db9ff66f67c8 | 178 | { |
el15ss | 1:db9ff66f67c8 | 179 | gems[j].draw(lcd); |
el15ss | 1:db9ff66f67c8 | 180 | |
el15ss | 1:db9ff66f67c8 | 181 | } |
el15ss | 1:db9ff66f67c8 | 182 | |
el15ss | 2:98a41609c827 | 183 | /*else{ |
el15ss | 1:db9ff66f67c8 | 184 | counter++; |
el15ss | 2:98a41609c827 | 185 | }*/ |
el15ss | 0:12cfe63faa6a | 186 | |
el15ss | 1:db9ff66f67c8 | 187 | } |
el15ss | 2:98a41609c827 | 188 | |
el15ss | 1:db9ff66f67c8 | 189 | |
el15ss | 2:98a41609c827 | 190 | |
el15ss | 1:db9ff66f67c8 | 191 | |
el15ss | 1:db9ff66f67c8 | 192 | |
el15ss | 0:12cfe63faa6a | 193 | lcd.refresh(); |
el15ss | 1:db9ff66f67c8 | 194 | |
el15ss | 0:12cfe63faa6a | 195 | } |
el15ss | 0:12cfe63faa6a | 196 | |
el15ss | 1:db9ff66f67c8 | 197 | |
el15ss | 0:12cfe63faa6a | 198 | void welcome() { |
el15ss | 0:12cfe63faa6a | 199 | |
el15ss | 1:db9ff66f67c8 | 200 | |
el15ss | 1:db9ff66f67c8 | 201 | |
el15ss | 0:12cfe63faa6a | 202 | lcd.printString("Stick Runner! ",0,1); |
el15ss | 0:12cfe63faa6a | 203 | lcd.printString(" Press Start ",0,4); |
el15ss | 0:12cfe63faa6a | 204 | lcd.refresh(); |
el15ss | 1:db9ff66f67c8 | 205 | // pad.tone(1500.0,0.5); |
el15ss | 1:db9ff66f67c8 | 206 | //pad.tone(1500.0,0.5); |
el15ss | 0:12cfe63faa6a | 207 | |
el15ss | 0:12cfe63faa6a | 208 | |
el15ss | 2:98a41609c827 | 209 | |
el15ss | 1:db9ff66f67c8 | 210 | while ( pad.check_event(Gamepad::START_PRESSED) == false) |
el15ss | 1:db9ff66f67c8 | 211 | { |
el15ss | 0:12cfe63faa6a | 212 | pad.leds_on(); |
el15ss | 0:12cfe63faa6a | 213 | wait(0.1); |
el15ss | 0:12cfe63faa6a | 214 | pad.leds_off(); |
el15ss | 0:12cfe63faa6a | 215 | wait(0.1); |
el15ss | 0:12cfe63faa6a | 216 | |
el15ss | 0:12cfe63faa6a | 217 | } |
el15ss | 0:12cfe63faa6a | 218 | menu(); |
el15ss | 0:12cfe63faa6a | 219 | } |
el15ss | 0:12cfe63faa6a | 220 | |
el15ss | 0:12cfe63faa6a | 221 | void over() { |
el15ss | 2:98a41609c827 | 222 | |
el15ss | 2:98a41609c827 | 223 | pad.init(); |
el15ss | 2:98a41609c827 | 224 | // lcd.clear(); |
el15ss | 2:98a41609c827 | 225 | sd.mount(); |
el15ss | 2:98a41609c827 | 226 | |
el15ss | 1:db9ff66f67c8 | 227 | |
el15ss | 2:98a41609c827 | 228 | sprintf (score, " Score : %d",counter); |
el15ss | 2:98a41609c827 | 229 | |
el15ss | 2:98a41609c827 | 230 | lcd.printString(score,0,2); |
el15ss | 2:98a41609c827 | 231 | lcd.printString("GAME OVER!! ",0,0); |
el15ss | 2:98a41609c827 | 232 | //lcd.printString(" ",0,1); |
el15ss | 1:db9ff66f67c8 | 233 | |
el15ss | 2:98a41609c827 | 234 | file = fopen("/sd/scoreFile.txt", "r"); |
el15ss | 2:98a41609c827 | 235 | if(file ==NULL) |
el15ss | 2:98a41609c827 | 236 | { |
el15ss | 2:98a41609c827 | 237 | file = fopen("/sd/scoreFile.txt", "w"); |
el15ss | 2:98a41609c827 | 238 | fprintf(file,"%d",counter); |
el15ss | 2:98a41609c827 | 239 | fclose(file); |
el15ss | 2:98a41609c827 | 240 | lcd.printString("HIGH SCORE",0,3); |
el15ss | 2:98a41609c827 | 241 | |
el15ss | 2:98a41609c827 | 242 | } |
el15ss | 2:98a41609c827 | 243 | else{ |
el15ss | 2:98a41609c827 | 244 | fscanf(file,"%d", &highScore); |
el15ss | 2:98a41609c827 | 245 | fclose(file); |
el15ss | 2:98a41609c827 | 246 | |
el15ss | 2:98a41609c827 | 247 | if(counter>highScore) |
el15ss | 2:98a41609c827 | 248 | { |
el15ss | 2:98a41609c827 | 249 | |
el15ss | 2:98a41609c827 | 250 | file = fopen("/sd/scoreFile.txt", "w"); |
el15ss | 2:98a41609c827 | 251 | fprintf(file,"%d",counter); |
el15ss | 2:98a41609c827 | 252 | fclose(file); |
el15ss | 2:98a41609c827 | 253 | lcd.printString("HIGH SCORE",0,3); |
el15ss | 2:98a41609c827 | 254 | } |
el15ss | 2:98a41609c827 | 255 | |
el15ss | 2:98a41609c827 | 256 | } |
el15ss | 2:98a41609c827 | 257 | |
el15ss | 1:db9ff66f67c8 | 258 | |
el15ss | 0:12cfe63faa6a | 259 | lcd.printString(" PRESS START ",0,4); |
el15ss | 0:12cfe63faa6a | 260 | |
el15ss | 0:12cfe63faa6a | 261 | lcd.refresh(); |
el15ss | 2:98a41609c827 | 262 | sd.unmount(); |
el15ss | 0:12cfe63faa6a | 263 | |
el15ss | 2:98a41609c827 | 264 | |
el15ss | 0:12cfe63faa6a | 265 | while ( pad.check_event(Gamepad::START_PRESSED) == false) { |
el15ss | 0:12cfe63faa6a | 266 | pad.leds_on(); |
el15ss | 1:db9ff66f67c8 | 267 | //pad.tone(1000.0,0.5); |
el15ss | 0:12cfe63faa6a | 268 | wait(0.1); |
el15ss | 0:12cfe63faa6a | 269 | pad.leds_off(); |
el15ss | 1:db9ff66f67c8 | 270 | // pad.tone(1000.0,0.5); |
el15ss | 0:12cfe63faa6a | 271 | wait(0.1); |
el15ss | 0:12cfe63faa6a | 272 | if( pad.check_event(Gamepad::START_PRESSED)) { |
el15ss | 0:12cfe63faa6a | 273 | main(); |
el15ss | 0:12cfe63faa6a | 274 | wait(1); |
el15ss | 0:12cfe63faa6a | 275 | } |
el15ss | 0:12cfe63faa6a | 276 | } |
el15ss | 0:12cfe63faa6a | 277 | |
el15ss | 0:12cfe63faa6a | 278 | } |
el15ss | 0:12cfe63faa6a | 279 | |
el15ss | 2:98a41609c827 | 280 | void displayHighScore() |
el15ss | 2:98a41609c827 | 281 | { |
el15ss | 2:98a41609c827 | 282 | sd.mount(); |
el15ss | 2:98a41609c827 | 283 | lcd.clear(); |
el15ss | 2:98a41609c827 | 284 | |
el15ss | 2:98a41609c827 | 285 | |
el15ss | 2:98a41609c827 | 286 | file = fopen("/sd/scoreFile.txt", "r"); |
el15ss | 2:98a41609c827 | 287 | if(file ==NULL) |
el15ss | 2:98a41609c827 | 288 | { |
el15ss | 2:98a41609c827 | 289 | highScore = 0; |
el15ss | 2:98a41609c827 | 290 | |
el15ss | 2:98a41609c827 | 291 | } |
el15ss | 2:98a41609c827 | 292 | else{ |
el15ss | 2:98a41609c827 | 293 | fscanf(file,"%d", &highScore); |
el15ss | 2:98a41609c827 | 294 | fclose(file); |
el15ss | 2:98a41609c827 | 295 | |
el15ss | 2:98a41609c827 | 296 | } |
el15ss | 2:98a41609c827 | 297 | |
el15ss | 2:98a41609c827 | 298 | sprintf (score, "High Score : %d",highScore); |
el15ss | 2:98a41609c827 | 299 | |
el15ss | 2:98a41609c827 | 300 | lcd.printString(score,0,2); |
el15ss | 2:98a41609c827 | 301 | lcd.printString(" START - reset ",0,4); |
el15ss | 2:98a41609c827 | 302 | lcd.printString(" BACK - menu ",0,5); |
el15ss | 2:98a41609c827 | 303 | lcd.refresh(); |
el15ss | 2:98a41609c827 | 304 | sd.unmount(); |
el15ss | 2:98a41609c827 | 305 | |
el15ss | 2:98a41609c827 | 306 | while(1) |
el15ss | 2:98a41609c827 | 307 | { |
el15ss | 2:98a41609c827 | 308 | if( pad.check_event(Gamepad::START_PRESSED)) { |
el15ss | 2:98a41609c827 | 309 | sd.mount(); |
el15ss | 2:98a41609c827 | 310 | file = fopen("/sd/scoreFile.txt", "r"); |
el15ss | 2:98a41609c827 | 311 | if(!file ==NULL) |
el15ss | 2:98a41609c827 | 312 | { |
el15ss | 2:98a41609c827 | 313 | fclose(file); |
el15ss | 2:98a41609c827 | 314 | remove("/sd/scoreFile.txt"); |
el15ss | 2:98a41609c827 | 315 | |
el15ss | 2:98a41609c827 | 316 | } |
el15ss | 2:98a41609c827 | 317 | sd.unmount(); |
el15ss | 2:98a41609c827 | 318 | displayHighScore(); |
el15ss | 2:98a41609c827 | 319 | |
el15ss | 2:98a41609c827 | 320 | } |
el15ss | 2:98a41609c827 | 321 | |
el15ss | 2:98a41609c827 | 322 | if( pad.check_event(Gamepad::BACK_PRESSED)) { |
el15ss | 2:98a41609c827 | 323 | menu(); |
el15ss | 2:98a41609c827 | 324 | } |
el15ss | 2:98a41609c827 | 325 | |
el15ss | 2:98a41609c827 | 326 | sleep(); |
el15ss | 2:98a41609c827 | 327 | |
el15ss | 2:98a41609c827 | 328 | } |
el15ss | 2:98a41609c827 | 329 | |
el15ss | 2:98a41609c827 | 330 | |
el15ss | 2:98a41609c827 | 331 | } |
el15ss | 2:98a41609c827 | 332 | |
el15ss | 0:12cfe63faa6a | 333 | void menu() { |
el15ss | 0:12cfe63faa6a | 334 | int fps =8; |
el15ss | 0:12cfe63faa6a | 335 | bool i = true; |
el15ss | 0:12cfe63faa6a | 336 | while(i == true) |
el15ss | 0:12cfe63faa6a | 337 | { |
el15ss | 2:98a41609c827 | 338 | lcd.clear(); |
el15ss | 2:98a41609c827 | 339 | lcd.printString(" Menu ",0,0); |
el15ss | 0:12cfe63faa6a | 340 | lcd.printString("A)New Game ",0,2); |
el15ss | 0:12cfe63faa6a | 341 | lcd.printString("B)Continue ",0,3); |
el15ss | 0:12cfe63faa6a | 342 | lcd.printString("X)Instructions ",0,4); |
el15ss | 2:98a41609c827 | 343 | lcd.printString("Y)High Score ",0,5); |
el15ss | 0:12cfe63faa6a | 344 | |
el15ss | 0:12cfe63faa6a | 345 | lcd.refresh(); |
el15ss | 0:12cfe63faa6a | 346 | |
el15ss | 0:12cfe63faa6a | 347 | // wait flashing LEDs until start button is pressed |
el15ss | 0:12cfe63faa6a | 348 | if( pad.check_event(Gamepad::A_PRESSED) ) { |
el15ss | 1:db9ff66f67c8 | 349 | //pad.tone(1000.0,0.5); |
el15ss | 0:12cfe63faa6a | 350 | i = false; |
el15ss | 0:12cfe63faa6a | 351 | lcd.clear(); |
el15ss | 0:12cfe63faa6a | 352 | lcd.refresh(); |
el15ss | 1:db9ff66f67c8 | 353 | init(); |
el15ss | 0:12cfe63faa6a | 354 | |
el15ss | 0:12cfe63faa6a | 355 | //break; |
el15ss | 0:12cfe63faa6a | 356 | } |
el15ss | 0:12cfe63faa6a | 357 | |
el15ss | 0:12cfe63faa6a | 358 | else if( pad.check_event(Gamepad::B_PRESSED) ) { |
el15ss | 0:12cfe63faa6a | 359 | //lcd.clear(); |
el15ss | 1:db9ff66f67c8 | 360 | // pad.tone(1000.0,0.5); |
el15ss | 0:12cfe63faa6a | 361 | i = false; |
el15ss | 0:12cfe63faa6a | 362 | lcd.refresh(); |
el15ss | 0:12cfe63faa6a | 363 | |
el15ss | 0:12cfe63faa6a | 364 | |
el15ss | 0:12cfe63faa6a | 365 | } |
el15ss | 0:12cfe63faa6a | 366 | |
el15ss | 0:12cfe63faa6a | 367 | else if( pad.check_event(Gamepad::X_PRESSED) ) { |
el15ss | 1:db9ff66f67c8 | 368 | // pad.tone(1000.0,0.5); |
el15ss | 0:12cfe63faa6a | 369 | Instructions(); |
el15ss | 2:98a41609c827 | 370 | wait(1.0f/fps); |
el15ss | 2:98a41609c827 | 371 | i = false; |
el15ss | 2:98a41609c827 | 372 | } |
el15ss | 2:98a41609c827 | 373 | |
el15ss | 2:98a41609c827 | 374 | else if( pad.check_event(Gamepad::Y_PRESSED) ) { |
el15ss | 2:98a41609c827 | 375 | // pad.tone(1000.0,0.5); |
el15ss | 2:98a41609c827 | 376 | displayHighScore(); |
el15ss | 2:98a41609c827 | 377 | wait(10.0f/fps); |
el15ss | 0:12cfe63faa6a | 378 | i = false; |
el15ss | 0:12cfe63faa6a | 379 | } |
el15ss | 0:12cfe63faa6a | 380 | |
el15ss | 0:12cfe63faa6a | 381 | |
el15ss | 0:12cfe63faa6a | 382 | } |
el15ss | 0:12cfe63faa6a | 383 | } |
el15ss | 0:12cfe63faa6a | 384 | |
el15ss | 0:12cfe63faa6a | 385 | void Instructions() |
el15ss | 0:12cfe63faa6a | 386 | { |
el15ss | 0:12cfe63faa6a | 387 | bool i = true; |
el15ss | 0:12cfe63faa6a | 388 | lcd.clear(); |
el15ss | 2:98a41609c827 | 389 | lcd.printString("INSTURCTIONS: ",0,0); |
el15ss | 0:12cfe63faa6a | 390 | lcd.printString("Collect the ",0,2); |
el15ss | 2:98a41609c827 | 391 | lcd.printString("gems and dodge ",0,3); |
el15ss | 2:98a41609c827 | 392 | lcd.printString("the obstacles ",0,4); |
el15ss | 2:98a41609c827 | 393 | lcd.printString("to get points ",0,5); |
el15ss | 0:12cfe63faa6a | 394 | lcd.refresh(); |
el15ss | 0:12cfe63faa6a | 395 | |
el15ss | 0:12cfe63faa6a | 396 | while(i == true){ |
el15ss | 0:12cfe63faa6a | 397 | |
el15ss | 0:12cfe63faa6a | 398 | if( pad.check_event(Gamepad::BACK_PRESSED) ) { |
el15ss | 1:db9ff66f67c8 | 399 | //pad.tone(1000.0,0.5); |
el15ss | 0:12cfe63faa6a | 400 | i = false; |
el15ss | 0:12cfe63faa6a | 401 | menu(); |
el15ss | 0:12cfe63faa6a | 402 | } |
el15ss | 0:12cfe63faa6a | 403 | } |
el15ss | 0:12cfe63faa6a | 404 | |
el15ss | 0:12cfe63faa6a | 405 | } |