Kern Fowler / Mbed 2 deprecated Donkey_Kong_Game

Dependencies:   mbed

Committer:
Kern_EL17KJTF
Date:
Tue May 07 16:02:12 2019 +0000
Revision:
8:421f94b816c4
Parent:
7:ffbc921c20f7
Child:
9:e6832bf222b7
Barrel Class Created.

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