Kern Fowler / Mbed 2 deprecated Donkey_Kong_Game

Dependencies:   mbed

Committer:
Kern_EL17KJTF
Date:
Tue May 07 17:40:29 2019 +0000
Revision:
9:e6832bf222b7
Parent:
8:421f94b816c4
Child:
10:28575a6eaa13
Barrel hitting donkey kong causes a game over.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kern_EL17KJTF 0:0130fd5738f7 1 /*
Kern_EL17KJTF 0:0130fd5738f7 2 ELEC2645 Embedded Systems Project
Kern_EL17KJTF 0:0130fd5738f7 3 School of Electronic & Electrical Engineering
Kern_EL17KJTF 0:0130fd5738f7 4 University of Leeds
Kern_EL17KJTF 0:0130fd5738f7 5
Kern_EL17KJTF 0:0130fd5738f7 6 Name: Kern Fowler
Kern_EL17KJTF 0:0130fd5738f7 7 Username: el17kjtf
Kern_EL17KJTF 0:0130fd5738f7 8 Student ID Number: 201116686
Kern_EL17KJTF 0:0130fd5738f7 9 Date: 19/02/2019
Kern_EL17KJTF 2:6baf849b0270 10 Version: 1.2
Kern_EL17KJTF 1:7a0917df015a 11
Kern_EL17KJTF 1:7a0917df015a 12 */
Kern_EL17KJTF 1:7a0917df015a 13 #include "main.h"
Kern_EL17KJTF 1:7a0917df015a 14
Kern_EL17KJTF 6:478f81e79d9b 15 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
Kern_EL17KJTF 6:478f81e79d9b 16 Gamepad pad;
Kern_EL17KJTF 6:478f81e79d9b 17 Options opt;
Kern_EL17KJTF 7:ffbc921c20f7 18 Donkey dky;
Kern_EL17KJTF 7:ffbc921c20f7 19 GameEngine eng;
Kern_EL17KJTF 6:478f81e79d9b 20
Kern_EL17KJTF 2:6baf849b0270 21 int fps = 24;
Kern_EL17KJTF 2:6baf849b0270 22 int direction;
Kern_EL17KJTF 3:b248dc1f3e8d 23 int menu_option_pos = 0;
Kern_EL17KJTF 2:6baf849b0270 24 int arrow_pos = 0;
Kern_EL17KJTF 2:6baf849b0270 25
Kern_EL17KJTF 6:478f81e79d9b 26
Kern_EL17KJTF 6:478f81e79d9b 27 // Donkey -----------
Kern_EL17KJTF 6:478f81e79d9b 28 int donkeykong_x = 0;
Kern_EL17KJTF 6:478f81e79d9b 29 int donkeykong_y = 32;
Kern_EL17KJTF 9:e6832bf222b7 30 int donkey_kong_speed = 10;
Kern_EL17KJTF 7:ffbc921c20f7 31
Kern_EL17KJTF 7:ffbc921c20f7 32 Donkey::Donkey()
Kern_EL17KJTF 7:ffbc921c20f7 33 {
Kern_EL17KJTF 7:ffbc921c20f7 34
Kern_EL17KJTF 7:ffbc921c20f7 35 }
Kern_EL17KJTF 7:ffbc921c20f7 36 Donkey::~Donkey()
Kern_EL17KJTF 7:ffbc921c20f7 37 {
Kern_EL17KJTF 7:ffbc921c20f7 38
Kern_EL17KJTF 7:ffbc921c20f7 39 }
Kern_EL17KJTF 7:ffbc921c20f7 40
Kern_EL17KJTF 7:ffbc921c20f7 41 void Donkey::donkeykong_movement(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 6:478f81e79d9b 42 direction = pad.get_direction();
Kern_EL17KJTF 6:478f81e79d9b 43 if (direction == NE || direction == E || direction == SE) {
Kern_EL17KJTF 6:478f81e79d9b 44 donkeykong_x = donkeykong_x + 1;
Kern_EL17KJTF 6:478f81e79d9b 45 lcd.drawSprite(donkeykong_x,donkeykong_y,16,16,(int *)game_dk_walking_right_1);
Kern_EL17KJTF 6:478f81e79d9b 46 }
Kern_EL17KJTF 6:478f81e79d9b 47 else if (direction == NW || direction == W || direction == SW) {
Kern_EL17KJTF 6:478f81e79d9b 48 donkeykong_x = donkeykong_x - 1;
Kern_EL17KJTF 6:478f81e79d9b 49 lcd.drawSprite(donkeykong_x,donkeykong_y,16,16,(int *)game_dk_walking_left_1);
Kern_EL17KJTF 6:478f81e79d9b 50 }
Kern_EL17KJTF 6:478f81e79d9b 51 else {
Kern_EL17KJTF 6:478f81e79d9b 52 lcd.drawSprite(donkeykong_x,donkeykong_y,16,16,(int *)game_dk_stationary);
Kern_EL17KJTF 6:478f81e79d9b 53 }
Kern_EL17KJTF 9:e6832bf222b7 54 wait_ms(donkey_kong_speed);
Kern_EL17KJTF 7:ffbc921c20f7 55 lcd.refresh();
Kern_EL17KJTF 6:478f81e79d9b 56 if (donkeykong_x > 68) {
Kern_EL17KJTF 6:478f81e79d9b 57 donkeykong_x = 68;
Kern_EL17KJTF 6:478f81e79d9b 58 }
Kern_EL17KJTF 6:478f81e79d9b 59 if (donkeykong_x < 0) {
Kern_EL17KJTF 6:478f81e79d9b 60 donkeykong_x = 0;
Kern_EL17KJTF 6:478f81e79d9b 61 }
Kern_EL17KJTF 6:478f81e79d9b 62 }
Kern_EL17KJTF 6:478f81e79d9b 63 // Barrel -----------
Kern_EL17KJTF 9:e6832bf222b7 64 int barrel_x = 30;
Kern_EL17KJTF 8:421f94b816c4 65 int barrel_y = 0;
Kern_EL17KJTF 8:421f94b816c4 66 int barrel_speed = 0;
Kern_EL17KJTF 8:421f94b816c4 67 int barrel_min = 0;
Kern_EL17KJTF 8:421f94b816c4 68 int barrel_max = 76;
Kern_EL17KJTF 9:e6832bf222b7 69 float barrel_time = 0;
Kern_EL17KJTF 8:421f94b816c4 70
Kern_EL17KJTF 8:421f94b816c4 71 Barrel::Barrel()
Kern_EL17KJTF 8:421f94b816c4 72 {
Kern_EL17KJTF 8:421f94b816c4 73
Kern_EL17KJTF 8:421f94b816c4 74 }
Kern_EL17KJTF 8:421f94b816c4 75
Kern_EL17KJTF 8:421f94b816c4 76 Barrel::~Barrel()
Kern_EL17KJTF 8:421f94b816c4 77 {
Kern_EL17KJTF 8:421f94b816c4 78
Kern_EL17KJTF 8:421f94b816c4 79 }
Kern_EL17KJTF 8:421f94b816c4 80
Kern_EL17KJTF 8:421f94b816c4 81 void Barrel::barrel_drop(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 8:421f94b816c4 82 lcd.drawSprite(barrel_x,barrel_y,4,8,(int *)game_barrel);
Kern_EL17KJTF 8:421f94b816c4 83 lcd.refresh();
Kern_EL17KJTF 9:e6832bf222b7 84 wait_ms(50);
Kern_EL17KJTF 9:e6832bf222b7 85 barrel_y = barrel_y + 1 + barrel_time;
Kern_EL17KJTF 9:e6832bf222b7 86 if (barrel_y > 44) {
Kern_EL17KJTF 9:e6832bf222b7 87 barrel_y = 0;
Kern_EL17KJTF 9:e6832bf222b7 88 barrel_x = rand() % (barrel_max + 1 - barrel_min) + barrel_min;
Kern_EL17KJTF 9:e6832bf222b7 89 barrel_time = barrel_time + 0.1;
Kern_EL17KJTF 9:e6832bf222b7 90 }
Kern_EL17KJTF 9:e6832bf222b7 91 }
Kern_EL17KJTF 9:e6832bf222b7 92
Kern_EL17KJTF 9:e6832bf222b7 93
Kern_EL17KJTF 9:e6832bf222b7 94 // Banana -----------
Kern_EL17KJTF 9:e6832bf222b7 95
Kern_EL17KJTF 9:e6832bf222b7 96
Kern_EL17KJTF 9:e6832bf222b7 97 // Game State--------------------------------------------------------------
Kern_EL17KJTF 9:e6832bf222b7 98
Kern_EL17KJTF 9:e6832bf222b7 99 GameEngine::GameEngine()
Kern_EL17KJTF 9:e6832bf222b7 100 {
Kern_EL17KJTF 9:e6832bf222b7 101
Kern_EL17KJTF 8:421f94b816c4 102 }
Kern_EL17KJTF 6:478f81e79d9b 103
Kern_EL17KJTF 9:e6832bf222b7 104 GameEngine::~GameEngine()
Kern_EL17KJTF 9:e6832bf222b7 105 {
Kern_EL17KJTF 9:e6832bf222b7 106
Kern_EL17KJTF 9:e6832bf222b7 107 }
Kern_EL17KJTF 9:e6832bf222b7 108
Kern_EL17KJTF 9:e6832bf222b7 109 void GameEngine::gameengine_run(Gamepad &pad, N5110 &lcd, Barrel &barrel) {
Kern_EL17KJTF 9:e6832bf222b7 110 wait_ms(250);
Kern_EL17KJTF 9:e6832bf222b7 111
Kern_EL17KJTF 9:e6832bf222b7 112 while (pad.check_event(Gamepad::BACK_PRESSED) == false) {
Kern_EL17KJTF 9:e6832bf222b7 113 //printf("Game State");
Kern_EL17KJTF 9:e6832bf222b7 114 lcd.clear();
Kern_EL17KJTF 9:e6832bf222b7 115 lcd.printString("Game",0,0);
Kern_EL17KJTF 9:e6832bf222b7 116 dky.donkeykong_movement(pad, lcd);
Kern_EL17KJTF 9:e6832bf222b7 117 barrel.barrel_drop(pad, lcd);
Kern_EL17KJTF 9:e6832bf222b7 118 if ((barrel_y >= 34) & ((barrel_x + 7) >= donkeykong_x) & (barrel_x <= (donkeykong_x + 15))) {
Kern_EL17KJTF 9:e6832bf222b7 119 lcd.clear();
Kern_EL17KJTF 9:e6832bf222b7 120 lcd.printString("OVER",0,0);
Kern_EL17KJTF 9:e6832bf222b7 121 wait_ms(1000);
Kern_EL17KJTF 9:e6832bf222b7 122 }
Kern_EL17KJTF 9:e6832bf222b7 123 wait_ms(1.0f/fps);
Kern_EL17KJTF 9:e6832bf222b7 124 }
Kern_EL17KJTF 9:e6832bf222b7 125 }
Kern_EL17KJTF 6:478f81e79d9b 126
Kern_EL17KJTF 6:478f81e79d9b 127 // Controls State----------------------------------------------------------
Kern_EL17KJTF 6:478f81e79d9b 128 void controls_run() {
Kern_EL17KJTF 6:478f81e79d9b 129 wait_ms(250);
Kern_EL17KJTF 6:478f81e79d9b 130
Kern_EL17KJTF 6:478f81e79d9b 131 while (pad.check_event(Gamepad::BACK_PRESSED) == false) {
Kern_EL17KJTF 6:478f81e79d9b 132 //printf("Control State");
Kern_EL17KJTF 6:478f81e79d9b 133 lcd.clear();
Kern_EL17KJTF 6:478f81e79d9b 134 lcd.printString("Controls",19,0);
Kern_EL17KJTF 6:478f81e79d9b 135 lcd.refresh();
Kern_EL17KJTF 6:478f81e79d9b 136 wait_ms(1.0f/fps);
Kern_EL17KJTF 6:478f81e79d9b 137 }
Kern_EL17KJTF 6:478f81e79d9b 138 }
Kern_EL17KJTF 6:478f81e79d9b 139
Kern_EL17KJTF 6:478f81e79d9b 140 // Instructions State------------------------------------------------------
Kern_EL17KJTF 6:478f81e79d9b 141 void instructions_run() {
Kern_EL17KJTF 6:478f81e79d9b 142 wait_ms(250);
Kern_EL17KJTF 6:478f81e79d9b 143
Kern_EL17KJTF 6:478f81e79d9b 144 while (pad.check_event(Gamepad::BACK_PRESSED) == false) {
Kern_EL17KJTF 6:478f81e79d9b 145 //printf("Instructions State");
Kern_EL17KJTF 6:478f81e79d9b 146 lcd.clear();
Kern_EL17KJTF 6:478f81e79d9b 147 lcd.printString("Instructions",7,0);
Kern_EL17KJTF 6:478f81e79d9b 148 lcd.refresh();
Kern_EL17KJTF 6:478f81e79d9b 149 wait_ms(1.0f/fps);
Kern_EL17KJTF 6:478f81e79d9b 150 }
Kern_EL17KJTF 6:478f81e79d9b 151 }
Kern_EL17KJTF 6:478f81e79d9b 152
Kern_EL17KJTF 6:478f81e79d9b 153 // Options State-----------------------------------------------------------
Kern_EL17KJTF 6:478f81e79d9b 154 float opt_brightness = 0.5;
Kern_EL17KJTF 6:478f81e79d9b 155 float opt_contrast = 0.396;
Kern_EL17KJTF 6:478f81e79d9b 156 int opt_volume = 1;
Kern_EL17KJTF 6:478f81e79d9b 157
Kern_EL17KJTF 6:478f81e79d9b 158 Options::Options()
Kern_EL17KJTF 6:478f81e79d9b 159 {
Kern_EL17KJTF 6:478f81e79d9b 160
Kern_EL17KJTF 6:478f81e79d9b 161 }
Kern_EL17KJTF 6:478f81e79d9b 162
Kern_EL17KJTF 6:478f81e79d9b 163 Options::~Options()
Kern_EL17KJTF 6:478f81e79d9b 164 {
Kern_EL17KJTF 6:478f81e79d9b 165
Kern_EL17KJTF 6:478f81e79d9b 166 }
Kern_EL17KJTF 6:478f81e79d9b 167
Kern_EL17KJTF 6:478f81e79d9b 168 void Options::options_run(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 6:478f81e79d9b 169 wait_ms(250);
Kern_EL17KJTF 6:478f81e79d9b 170 while (pad.check_event(Gamepad::BACK_PRESSED) == false) {
Kern_EL17KJTF 6:478f81e79d9b 171 //printf("Options State");
Kern_EL17KJTF 6:478f81e79d9b 172 lcd.clear();
Kern_EL17KJTF 6:478f81e79d9b 173 lcd.printString("Options",21,0);
Kern_EL17KJTF 6:478f81e79d9b 174 options_brightness(pad, lcd);
Kern_EL17KJTF 6:478f81e79d9b 175 options_contrast(pad, lcd);
Kern_EL17KJTF 6:478f81e79d9b 176 options_volume(pad, lcd);
Kern_EL17KJTF 6:478f81e79d9b 177 lcd.refresh();
Kern_EL17KJTF 6:478f81e79d9b 178 wait_ms(1.0f/fps);
Kern_EL17KJTF 6:478f81e79d9b 179 }
Kern_EL17KJTF 6:478f81e79d9b 180 }
Kern_EL17KJTF 6:478f81e79d9b 181
Kern_EL17KJTF 6:478f81e79d9b 182 void Options::options_brightness(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 6:478f81e79d9b 183 if (pad.check_event(Gamepad::B_PRESSED) == true) {
Kern_EL17KJTF 6:478f81e79d9b 184 opt_brightness = 0;
Kern_EL17KJTF 6:478f81e79d9b 185 }
Kern_EL17KJTF 6:478f81e79d9b 186 if (pad.check_event(Gamepad::A_PRESSED) == true) {
Kern_EL17KJTF 6:478f81e79d9b 187 opt_brightness = 0.5;
Kern_EL17KJTF 6:478f81e79d9b 188 }
Kern_EL17KJTF 6:478f81e79d9b 189 lcd.setBrightness(opt_brightness);
Kern_EL17KJTF 6:478f81e79d9b 190 lcd.printString("A/B = BackLite",0,2);
Kern_EL17KJTF 6:478f81e79d9b 191 }
Kern_EL17KJTF 6:478f81e79d9b 192
Kern_EL17KJTF 6:478f81e79d9b 193 void Options::options_contrast(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 6:478f81e79d9b 194 opt_contrast = pad.read_pot();
Kern_EL17KJTF 6:478f81e79d9b 195 lcd.setContrast(opt_contrast);
Kern_EL17KJTF 6:478f81e79d9b 196 lcd.printString("Pot = Contrast",0,3);
Kern_EL17KJTF 6:478f81e79d9b 197 printf("Contrast = %f", opt_contrast);
Kern_EL17KJTF 6:478f81e79d9b 198 }
Kern_EL17KJTF 6:478f81e79d9b 199
Kern_EL17KJTF 6:478f81e79d9b 200 void Options::options_volume(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 6:478f81e79d9b 201 if (pad.check_event(Gamepad::Y_PRESSED) == true) {
Kern_EL17KJTF 6:478f81e79d9b 202 opt_volume = 0;
Kern_EL17KJTF 6:478f81e79d9b 203 }
Kern_EL17KJTF 6:478f81e79d9b 204 if (pad.check_event(Gamepad::X_PRESSED) == true) {
Kern_EL17KJTF 6:478f81e79d9b 205 opt_volume = 1;
Kern_EL17KJTF 6:478f81e79d9b 206 pad.tone(2400, 0.2);
Kern_EL17KJTF 6:478f81e79d9b 207 wait_ms(200);
Kern_EL17KJTF 6:478f81e79d9b 208 pad.tone(2400, 0.2);
Kern_EL17KJTF 6:478f81e79d9b 209 wait_ms(200);
Kern_EL17KJTF 6:478f81e79d9b 210 pad.tone(2400, 0.2);
Kern_EL17KJTF 6:478f81e79d9b 211 }
Kern_EL17KJTF 6:478f81e79d9b 212 lcd.printString("X/Y = Volume",0,4);
Kern_EL17KJTF 6:478f81e79d9b 213 if (opt_volume == 0) {
Kern_EL17KJTF 6:478f81e79d9b 214 lcd.printString("Off",36,5);
Kern_EL17KJTF 6:478f81e79d9b 215 } else {
Kern_EL17KJTF 6:478f81e79d9b 216 lcd.printString("On",36,5);
Kern_EL17KJTF 6:478f81e79d9b 217 }
Kern_EL17KJTF 6:478f81e79d9b 218
Kern_EL17KJTF 6:478f81e79d9b 219 }
Kern_EL17KJTF 6:478f81e79d9b 220
Kern_EL17KJTF 6:478f81e79d9b 221 // High Score State--------------------------------------------------------
Kern_EL17KJTF 6:478f81e79d9b 222 void high_scores_run() {
Kern_EL17KJTF 6:478f81e79d9b 223 while (pad.check_event(Gamepad::BACK_PRESSED) == false) {
Kern_EL17KJTF 6:478f81e79d9b 224 //printf("High Score State");
Kern_EL17KJTF 6:478f81e79d9b 225 lcd.clear();
Kern_EL17KJTF 6:478f81e79d9b 226 lcd.printString("High Scores",12,0);
Kern_EL17KJTF 6:478f81e79d9b 227 lcd.refresh();
Kern_EL17KJTF 6:478f81e79d9b 228 wait_ms(1.0f/fps);
Kern_EL17KJTF 6:478f81e79d9b 229 }
Kern_EL17KJTF 6:478f81e79d9b 230 }
Kern_EL17KJTF 6:478f81e79d9b 231
Kern_EL17KJTF 6:478f81e79d9b 232 // Main Menu --------------------------------------------------------------
Kern_EL17KJTF 2:6baf849b0270 233 int main() {
Kern_EL17KJTF 1:7a0917df015a 234 init(); // initialise peripherals
Kern_EL17KJTF 1:7a0917df015a 235 welcome(); // display welcome message
Kern_EL17KJTF 1:7a0917df015a 236
Kern_EL17KJTF 1:7a0917df015a 237 while(1) { // infinite loop
Kern_EL17KJTF 2:6baf849b0270 238 arrow_location();
Kern_EL17KJTF 2:6baf849b0270 239 print_menu(); // this re-prints the menu at the start of every loop
Kern_EL17KJTF 2:6baf849b0270 240 arrow_select();
Kern_EL17KJTF 2:6baf849b0270 241 wait_ms(1.0f/fps);
Kern_EL17KJTF 1:7a0917df015a 242 }
Kern_EL17KJTF 1:7a0917df015a 243 }
Kern_EL17KJTF 1:7a0917df015a 244
Kern_EL17KJTF 2:6baf849b0270 245 void init() {
Kern_EL17KJTF 1:7a0917df015a 246 // initialise LCD
Kern_EL17KJTF 1:7a0917df015a 247 lcd.init();
Kern_EL17KJTF 1:7a0917df015a 248 // initialise Gamepad
Kern_EL17KJTF 1:7a0917df015a 249 pad.init();
Kern_EL17KJTF 2:6baf849b0270 250 wait(2.5);
Kern_EL17KJTF 2:6baf849b0270 251 }
Kern_EL17KJTF 2:6baf849b0270 252
Kern_EL17KJTF 2:6baf849b0270 253 void arrow_location() {
Kern_EL17KJTF 2:6baf849b0270 254 direction = pad.get_direction();
Kern_EL17KJTF 2:6baf849b0270 255 if (direction == N) {
Kern_EL17KJTF 3:b248dc1f3e8d 256 menu_option_pos = menu_option_pos - 1;
Kern_EL17KJTF 2:6baf849b0270 257 // printf("North Pressed");
Kern_EL17KJTF 2:6baf849b0270 258 wait_ms(250);
Kern_EL17KJTF 2:6baf849b0270 259 }
Kern_EL17KJTF 2:6baf849b0270 260 if (direction == S) {
Kern_EL17KJTF 3:b248dc1f3e8d 261 menu_option_pos = menu_option_pos + 1;
Kern_EL17KJTF 2:6baf849b0270 262 // printf("South Pressed");
Kern_EL17KJTF 2:6baf849b0270 263 wait_ms(250);
Kern_EL17KJTF 2:6baf849b0270 264 }
Kern_EL17KJTF 4:59175720d8ee 265 if (menu_option_pos > 4) {
Kern_EL17KJTF 3:b248dc1f3e8d 266 menu_option_pos = 0;
Kern_EL17KJTF 2:6baf849b0270 267 }
Kern_EL17KJTF 3:b248dc1f3e8d 268 if (menu_option_pos < 0) {
Kern_EL17KJTF 4:59175720d8ee 269 menu_option_pos = 4;
Kern_EL17KJTF 2:6baf849b0270 270 }
Kern_EL17KJTF 4:59175720d8ee 271 arrow_pos = 8 + (menu_option_pos * 8);
Kern_EL17KJTF 3:b248dc1f3e8d 272 // printf("Option Num = %d", menu_option_pos)
Kern_EL17KJTF 2:6baf849b0270 273 }
Kern_EL17KJTF 2:6baf849b0270 274
Kern_EL17KJTF 2:6baf849b0270 275 void arrow_select() {
Kern_EL17KJTF 2:6baf849b0270 276 if (pad.check_event(Gamepad::A_PRESSED) == true) {
Kern_EL17KJTF 3:b248dc1f3e8d 277 if (menu_option_pos == 0) {
Kern_EL17KJTF 2:6baf849b0270 278 // printf("GameEngine");
Kern_EL17KJTF 9:e6832bf222b7 279 eng.gameengine_run(pad, lcd, barrel);
Kern_EL17KJTF 2:6baf849b0270 280 }
Kern_EL17KJTF 3:b248dc1f3e8d 281 if (menu_option_pos == 1) {
Kern_EL17KJTF 2:6baf849b0270 282 // printf("Controls");
Kern_EL17KJTF 2:6baf849b0270 283 controls_run();
Kern_EL17KJTF 2:6baf849b0270 284 }
Kern_EL17KJTF 3:b248dc1f3e8d 285 if (menu_option_pos == 2) {
Kern_EL17KJTF 2:6baf849b0270 286 // printf("Instructions");
Kern_EL17KJTF 2:6baf849b0270 287 instructions_run();
Kern_EL17KJTF 2:6baf849b0270 288 }
Kern_EL17KJTF 3:b248dc1f3e8d 289 if (menu_option_pos == 3) {
Kern_EL17KJTF 2:6baf849b0270 290 // printf("Options");
Kern_EL17KJTF 6:478f81e79d9b 291 opt.options_run(pad, lcd);
Kern_EL17KJTF 2:6baf849b0270 292 }
Kern_EL17KJTF 4:59175720d8ee 293 if (menu_option_pos == 4) {
Kern_EL17KJTF 4:59175720d8ee 294 // printf("High Scores");
Kern_EL17KJTF 4:59175720d8ee 295 high_scores_run();
Kern_EL17KJTF 4:59175720d8ee 296 }
Kern_EL17KJTF 2:6baf849b0270 297 }
Kern_EL17KJTF 2:6baf849b0270 298 }
Kern_EL17KJTF 1:7a0917df015a 299
Kern_EL17KJTF 1:7a0917df015a 300
Kern_EL17KJTF 2:6baf849b0270 301 void print_menu() {
Kern_EL17KJTF 2:6baf849b0270 302 lcd.clear();
Kern_EL17KJTF 3:b248dc1f3e8d 303 lcd.printString("Main Menu",19,0);
Kern_EL17KJTF 4:59175720d8ee 304 lcd.printString("Start Game",8,1);
Kern_EL17KJTF 4:59175720d8ee 305 lcd.printString("Controls",8,2);
Kern_EL17KJTF 4:59175720d8ee 306 lcd.printString("Instructions",8,3);
Kern_EL17KJTF 4:59175720d8ee 307 lcd.printString("Options",8,4);
Kern_EL17KJTF 4:59175720d8ee 308 lcd.printString("High Scores",8,5);
Kern_EL17KJTF 2:6baf849b0270 309 lcd.drawSprite(0,arrow_pos,7,7,(int *)menu_arrow);
Kern_EL17KJTF 2:6baf849b0270 310 lcd.refresh();
Kern_EL17KJTF 1:7a0917df015a 311 }
Kern_EL17KJTF 1:7a0917df015a 312
Kern_EL17KJTF 2:6baf849b0270 313 void welcome() {
Kern_EL17KJTF 1:7a0917df015a 314 lcd.clear();
Kern_EL17KJTF 2:6baf849b0270 315 lcd.drawSprite(24,0,36,34,(int *)menu_dk_face);
Kern_EL17KJTF 1:7a0917df015a 316 lcd.printString(" Donkey Kong",0,5);
Kern_EL17KJTF 1:7a0917df015a 317 lcd.refresh();
Kern_EL17KJTF 2:6baf849b0270 318 wait(1.0); //edit back to longer
Kern_EL17KJTF 1:7a0917df015a 319 lcd.clear();
Kern_EL17KJTF 2:6baf849b0270 320 lcd.printString(" Created",0,0);
Kern_EL17KJTF 2:6baf849b0270 321 lcd.printString(" By",0,1);
Kern_EL17KJTF 2:6baf849b0270 322 lcd.printString(" Kern Fowler",0,3);
Kern_EL17KJTF 2:6baf849b0270 323 lcd.printString(" 201116686",0,4);
Kern_EL17KJTF 1:7a0917df015a 324 lcd.refresh();
Kern_EL17KJTF 2:6baf849b0270 325 wait(1.0);
Kern_EL17KJTF 1:7a0917df015a 326 }