el15mh 200929957

Dependencies:   mbed

Committer:
el15mh
Date:
Thu Mar 30 14:08:03 2017 +0000
Revision:
2:a488caea1601
Parent:
1:8ce2586b5965
Child:
3:02653cb1c8f8
options menu working;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el15mh 0:d7701c5c20e6 1 #include "mbed.h"
el15mh 0:d7701c5c20e6 2 #include "N5110.h"
el15mh 0:d7701c5c20e6 3 #include "Gamepad.h"
el15mh 0:d7701c5c20e6 4
el15mh 0:d7701c5c20e6 5 // CREATE OBJECTS //
el15mh 0:d7701c5c20e6 6 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
el15mh 0:d7701c5c20e6 7 Gamepad pad;
el15mh 0:d7701c5c20e6 8
el15mh 0:d7701c5c20e6 9 // FUNCTION PROTOTYPES //
el15mh 0:d7701c5c20e6 10 void init();
el15mh 2:a488caea1601 11 void difficultyOptions();
el15mh 2:a488caea1601 12 void colourOptions();
el15mh 2:a488caea1601 13
el15mh 0:d7701c5c20e6 14
el15mh 0:d7701c5c20e6 15 int main()
el15mh 0:d7701c5c20e6 16 {
el15mh 0:d7701c5c20e6 17 init(); // initialise devices
el15mh 0:d7701c5c20e6 18
el15mh 2:a488caea1601 19 printf("Devices initialised \n");
el15mh 2:a488caea1601 20
el15mh 2:a488caea1601 21 int selected = 0;
el15mh 2:a488caea1601 22
el15mh 2:a488caea1601 23 while(1) {
el15mh 0:d7701c5c20e6 24
el15mh 2:a488caea1601 25 // printf("While loop 1 \n");
el15mh 2:a488caea1601 26 // printf("Selected = %i \n", selected);
el15mh 2:a488caea1601 27 switch (selected) {
el15mh 2:a488caea1601 28
el15mh 2:a488caea1601 29 case 1:
el15mh 2:a488caea1601 30
el15mh 2:a488caea1601 31 lcd.clear();
el15mh 2:a488caea1601 32 // displays options page with indicator on first
el15mh 2:a488caea1601 33 lcd.printString("Game Options:", 0, 0);
el15mh 2:a488caea1601 34 lcd.printString(">Difficulty", 0, 2);
el15mh 2:a488caea1601 35 lcd.printString(" Ball Colour", 0, 3);
el15mh 2:a488caea1601 36 lcd.refresh();
el15mh 2:a488caea1601 37
el15mh 2:a488caea1601 38 if (pad.check_event(Gamepad::A_PRESSED) ||
el15mh 2:a488caea1601 39 pad.check_event(Gamepad::JOY_PRESSED)){
el15mh 0:d7701c5c20e6 40
el15mh 2:a488caea1601 41 difficultyOptions();
el15mh 2:a488caea1601 42 }
el15mh 2:a488caea1601 43
el15mh 2:a488caea1601 44 wait_ms(250);
el15mh 2:a488caea1601 45
el15mh 2:a488caea1601 46 break;
el15mh 2:a488caea1601 47
el15mh 2:a488caea1601 48 case 2:
el15mh 2:a488caea1601 49
el15mh 2:a488caea1601 50 lcd.clear();
el15mh 2:a488caea1601 51 // displays options page with indicator on second
el15mh 2:a488caea1601 52 lcd.printString("Game Options:", 0, 0);
el15mh 2:a488caea1601 53 lcd.printString(" Difficulty", 0, 2);
el15mh 2:a488caea1601 54 lcd.printString(">Ball Colour", 0, 3);
el15mh 2:a488caea1601 55 lcd.refresh();
el15mh 2:a488caea1601 56
el15mh 2:a488caea1601 57 // if second option selected
el15mh 2:a488caea1601 58 if (pad.check_event(Gamepad::A_PRESSED) ||
el15mh 2:a488caea1601 59 pad.check_event(Gamepad::JOY_PRESSED)){
el15mh 0:d7701c5c20e6 60
el15mh 2:a488caea1601 61 colourOptions();
el15mh 2:a488caea1601 62 }
el15mh 2:a488caea1601 63
el15mh 2:a488caea1601 64 wait_ms(250);
el15mh 2:a488caea1601 65
el15mh 2:a488caea1601 66 break;
el15mh 2:a488caea1601 67
el15mh 2:a488caea1601 68 default:
el15mh 2:a488caea1601 69
el15mh 2:a488caea1601 70 selected = 1;
el15mh 2:a488caea1601 71
el15mh 2:a488caea1601 72 break;
el15mh 2:a488caea1601 73 }
el15mh 2:a488caea1601 74
el15mh 2:a488caea1601 75 char d = pad.get_direction();
el15mh 2:a488caea1601 76
el15mh 2:a488caea1601 77 if ((d == NW) ||
el15mh 2:a488caea1601 78 (d == N) ||
el15mh 2:a488caea1601 79 (d == NE)){
el15mh 2:a488caea1601 80
el15mh 2:a488caea1601 81 selected -= 1;
el15mh 2:a488caea1601 82 }
el15mh 2:a488caea1601 83
el15mh 2:a488caea1601 84 if ((d == SW) ||
el15mh 2:a488caea1601 85 (d == S) ||
el15mh 2:a488caea1601 86 (d == SE)){
el15mh 2:a488caea1601 87
el15mh 2:a488caea1601 88 selected += 1;
el15mh 2:a488caea1601 89 }
el15mh 2:a488caea1601 90
el15mh 2:a488caea1601 91 if (pad.check_event(Gamepad::Y_PRESSED)){
el15mh 2:a488caea1601 92
el15mh 2:a488caea1601 93 selected -= 1;
el15mh 2:a488caea1601 94 }
el15mh 2:a488caea1601 95
el15mh 2:a488caea1601 96 if (pad.check_event(Gamepad::X_PRESSED)){
el15mh 2:a488caea1601 97
el15mh 2:a488caea1601 98 selected += 1;
el15mh 0:d7701c5c20e6 99 }
el15mh 1:8ce2586b5965 100
el15mh 0:d7701c5c20e6 101 }
el15mh 0:d7701c5c20e6 102 }
el15mh 0:d7701c5c20e6 103
el15mh 2:a488caea1601 104
el15mh 1:8ce2586b5965 105 void init()
el15mh 0:d7701c5c20e6 106 {
el15mh 1:8ce2586b5965 107 lcd.init();
el15mh 1:8ce2586b5965 108 pad.init();
el15mh 0:d7701c5c20e6 109 }
el15mh 2:a488caea1601 110
el15mh 2:a488caea1601 111 void difficultyOptions()
el15mh 2:a488caea1601 112 {
el15mh 2:a488caea1601 113 int selected = 0;
el15mh 2:a488caea1601 114 int exit = 0;
el15mh 2:a488caea1601 115
el15mh 2:a488caea1601 116 while(exit == 0){
el15mh 2:a488caea1601 117
el15mh 2:a488caea1601 118 switch(selected){
el15mh 2:a488caea1601 119
el15mh 2:a488caea1601 120 case 1:
el15mh 2:a488caea1601 121
el15mh 2:a488caea1601 122 lcd.clear();
el15mh 2:a488caea1601 123 lcd.printString("Difficulty: ", 0, 0);
el15mh 2:a488caea1601 124 lcd.printString(">Easy", 0, 2);
el15mh 2:a488caea1601 125 lcd.printString(" Hard", 0, 3);
el15mh 2:a488caea1601 126 lcd.refresh();
el15mh 2:a488caea1601 127
el15mh 2:a488caea1601 128 if (pad.check_event(Gamepad::A_PRESSED) ||
el15mh 2:a488caea1601 129 pad.check_event(Gamepad::JOY_PRESSED)){
el15mh 2:a488caea1601 130
el15mh 2:a488caea1601 131 // maze.mazeIndex = 0;
el15mh 2:a488caea1601 132 lcd.clear();
el15mh 2:a488caea1601 133 lcd.printString("Easy mode", 0, 1);
el15mh 2:a488caea1601 134 lcd.refresh();
el15mh 2:a488caea1601 135 wait(2);
el15mh 2:a488caea1601 136 }
el15mh 2:a488caea1601 137
el15mh 2:a488caea1601 138 break;
el15mh 2:a488caea1601 139
el15mh 2:a488caea1601 140 case 2:
el15mh 2:a488caea1601 141
el15mh 2:a488caea1601 142 lcd.clear();
el15mh 2:a488caea1601 143 lcd.printString("Difficulty: ", 0, 0);
el15mh 2:a488caea1601 144 lcd.printString(" Easy", 0, 2);
el15mh 2:a488caea1601 145 lcd.printString(">Hard", 0, 3);
el15mh 2:a488caea1601 146 lcd.refresh();
el15mh 2:a488caea1601 147
el15mh 2:a488caea1601 148 if (pad.check_event(Gamepad::A_PRESSED) ||
el15mh 2:a488caea1601 149 pad.check_event(Gamepad::JOY_PRESSED)){
el15mh 2:a488caea1601 150
el15mh 2:a488caea1601 151 // maze.mazeIndex = 1;
el15mh 2:a488caea1601 152 lcd.clear();
el15mh 2:a488caea1601 153 lcd.printString("Hard mode", 0, 1);
el15mh 2:a488caea1601 154 lcd.refresh();
el15mh 2:a488caea1601 155 wait(2);
el15mh 2:a488caea1601 156 }
el15mh 2:a488caea1601 157
el15mh 2:a488caea1601 158 break;
el15mh 2:a488caea1601 159
el15mh 2:a488caea1601 160 default:
el15mh 2:a488caea1601 161
el15mh 2:a488caea1601 162 selected = 1;
el15mh 2:a488caea1601 163
el15mh 2:a488caea1601 164 break;
el15mh 2:a488caea1601 165
el15mh 2:a488caea1601 166 }
el15mh 2:a488caea1601 167 char d = pad.get_direction();
el15mh 2:a488caea1601 168
el15mh 2:a488caea1601 169 if ((d == NW) ||
el15mh 2:a488caea1601 170 (d == N) ||
el15mh 2:a488caea1601 171 (d == NE)){
el15mh 2:a488caea1601 172
el15mh 2:a488caea1601 173 selected -= 1;
el15mh 2:a488caea1601 174 }
el15mh 2:a488caea1601 175
el15mh 2:a488caea1601 176 if ((d == SW) ||
el15mh 2:a488caea1601 177 (d == S) ||
el15mh 2:a488caea1601 178 (d == SE)){
el15mh 2:a488caea1601 179
el15mh 2:a488caea1601 180 selected += 1;
el15mh 2:a488caea1601 181 }
el15mh 2:a488caea1601 182
el15mh 2:a488caea1601 183
el15mh 2:a488caea1601 184 if (pad.check_event(Gamepad::BACK_PRESSED)){
el15mh 2:a488caea1601 185
el15mh 2:a488caea1601 186 exit = 1;
el15mh 2:a488caea1601 187 }
el15mh 2:a488caea1601 188
el15mh 2:a488caea1601 189 }
el15mh 2:a488caea1601 190 }
el15mh 2:a488caea1601 191
el15mh 2:a488caea1601 192 void colourOptions()
el15mh 2:a488caea1601 193 {
el15mh 2:a488caea1601 194 int selected = 0;
el15mh 2:a488caea1601 195 int exit = 0;
el15mh 2:a488caea1601 196 while(exit == 0){
el15mh 2:a488caea1601 197
el15mh 2:a488caea1601 198 switch(selected){
el15mh 2:a488caea1601 199
el15mh 2:a488caea1601 200 case 1:
el15mh 2:a488caea1601 201
el15mh 2:a488caea1601 202 printf("case 2.1");
el15mh 2:a488caea1601 203
el15mh 2:a488caea1601 204 lcd.clear();
el15mh 2:a488caea1601 205 lcd.printString("Ball colour: ", 0, 0);
el15mh 2:a488caea1601 206 lcd.printString(">Transparent", 0, 2);
el15mh 2:a488caea1601 207 lcd.printString(" Solid", 0, 3);
el15mh 2:a488caea1601 208 lcd.refresh();
el15mh 2:a488caea1601 209
el15mh 2:a488caea1601 210 if (pad.check_event(Gamepad::A_PRESSED) ||
el15mh 2:a488caea1601 211 pad.check_event(Gamepad::JOY_PRESSED)){
el15mh 2:a488caea1601 212
el15mh 2:a488caea1601 213 // ball.ballColour = 0;
el15mh 2:a488caea1601 214 lcd.clear();
el15mh 2:a488caea1601 215 lcd.printString("Transparent", 0, 1);
el15mh 2:a488caea1601 216 lcd.refresh();
el15mh 2:a488caea1601 217 wait(2);
el15mh 2:a488caea1601 218 }
el15mh 2:a488caea1601 219
el15mh 2:a488caea1601 220 break;
el15mh 2:a488caea1601 221
el15mh 2:a488caea1601 222 case 2:
el15mh 2:a488caea1601 223
el15mh 2:a488caea1601 224 printf("case 2.2");
el15mh 2:a488caea1601 225
el15mh 2:a488caea1601 226 lcd.clear();
el15mh 2:a488caea1601 227 lcd.printString("Ball colour: ", 0, 0);
el15mh 2:a488caea1601 228 lcd.printString(" Transparent", 0, 2);
el15mh 2:a488caea1601 229 lcd.printString(">Solid", 0, 3);
el15mh 2:a488caea1601 230 lcd.refresh();
el15mh 2:a488caea1601 231
el15mh 2:a488caea1601 232 if (pad.check_event(Gamepad::A_PRESSED) ||
el15mh 2:a488caea1601 233 pad.check_event(Gamepad::JOY_PRESSED)){
el15mh 2:a488caea1601 234
el15mh 2:a488caea1601 235 // ball.ballColour = 1;
el15mh 2:a488caea1601 236 lcd.clear();
el15mh 2:a488caea1601 237 lcd.printString("Solid", 0, 1);
el15mh 2:a488caea1601 238 lcd.refresh();
el15mh 2:a488caea1601 239 wait(2);
el15mh 2:a488caea1601 240 }
el15mh 2:a488caea1601 241
el15mh 2:a488caea1601 242 break;
el15mh 2:a488caea1601 243
el15mh 2:a488caea1601 244 default:
el15mh 2:a488caea1601 245
el15mh 2:a488caea1601 246 selected = 1;
el15mh 2:a488caea1601 247
el15mh 2:a488caea1601 248 break;
el15mh 2:a488caea1601 249 }
el15mh 2:a488caea1601 250
el15mh 2:a488caea1601 251 char d = pad.get_direction();
el15mh 2:a488caea1601 252
el15mh 2:a488caea1601 253 if ((d == NW) ||
el15mh 2:a488caea1601 254 (d == N) ||
el15mh 2:a488caea1601 255 (d == NE)){
el15mh 2:a488caea1601 256
el15mh 2:a488caea1601 257 selected -= 1;
el15mh 2:a488caea1601 258 }
el15mh 2:a488caea1601 259
el15mh 2:a488caea1601 260 if ((d == SW) ||
el15mh 2:a488caea1601 261 (d == S) ||
el15mh 2:a488caea1601 262 (d == SE)){
el15mh 2:a488caea1601 263
el15mh 2:a488caea1601 264 selected += 1;
el15mh 2:a488caea1601 265 }
el15mh 2:a488caea1601 266
el15mh 2:a488caea1601 267 if (pad.check_event(Gamepad::BACK_PRESSED)){
el15mh 2:a488caea1601 268
el15mh 2:a488caea1601 269 exit = 1;
el15mh 2:a488caea1601 270 }
el15mh 2:a488caea1601 271 }
el15mh 2:a488caea1601 272
el15mh 2:a488caea1601 273 }
el15mh 2:a488caea1601 274
el15mh 2:a488caea1601 275
el15mh 2:a488caea1601 276