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