ECE 4180 - Project
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed-rtos mbed wave_player_appbd
main.cpp@0:0080ab59b360, 2016-10-26 (annotated)
- Committer:
- laxman7117
- Date:
- Wed Oct 26 18:34:25 2016 +0000
- Revision:
- 0:0080ab59b360
v1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
laxman7117 | 0:0080ab59b360 | 1 | #include "mbed.h" |
laxman7117 | 0:0080ab59b360 | 2 | #include "uLCD_4DGL.h" |
laxman7117 | 0:0080ab59b360 | 3 | #include "Joystick.h" |
laxman7117 | 0:0080ab59b360 | 4 | #include "SDFileSystem.h" |
laxman7117 | 0:0080ab59b360 | 5 | #include "wave_player.h" |
laxman7117 | 0:0080ab59b360 | 6 | #include "rtos.h" |
laxman7117 | 0:0080ab59b360 | 7 | |
laxman7117 | 0:0080ab59b360 | 8 | uLCD_4DGL uLCD(p9,p10,p11); // serial tx, serial rx, reset pin; |
laxman7117 | 0:0080ab59b360 | 9 | Nav_Switch myNav( p12, p13, p14, p15, p16); |
laxman7117 | 0:0080ab59b360 | 10 | DigitalIn pb(p20); |
laxman7117 | 0:0080ab59b360 | 11 | |
laxman7117 | 0:0080ab59b360 | 12 | //Analog Out Jack |
laxman7117 | 0:0080ab59b360 | 13 | AnalogOut DACout(p18); |
laxman7117 | 0:0080ab59b360 | 14 | //On Board Speaker |
laxman7117 | 0:0080ab59b360 | 15 | PwmOut PWMout(p26); |
laxman7117 | 0:0080ab59b360 | 16 | |
laxman7117 | 0:0080ab59b360 | 17 | wave_player waver(&DACout,&PWMout); |
laxman7117 | 0:0080ab59b360 | 18 | SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sck, cs |
laxman7117 | 0:0080ab59b360 | 19 | int Hx2 = 50; |
laxman7117 | 0:0080ab59b360 | 20 | int Px2 = 127; |
laxman7117 | 0:0080ab59b360 | 21 | int count; |
laxman7117 | 0:0080ab59b360 | 22 | void Game_Over(void); |
laxman7117 | 0:0080ab59b360 | 23 | void Thunder(void); |
laxman7117 | 0:0080ab59b360 | 24 | void Shock(void); |
laxman7117 | 0:0080ab59b360 | 25 | void Slam(void); |
laxman7117 | 0:0080ab59b360 | 26 | void Tackle(void); |
laxman7117 | 0:0080ab59b360 | 27 | void display_attacks(void); |
laxman7117 | 0:0080ab59b360 | 28 | int select_attack(void); |
laxman7117 | 0:0080ab59b360 | 29 | void attack(int A); |
laxman7117 | 0:0080ab59b360 | 30 | void redraw(void); |
laxman7117 | 0:0080ab59b360 | 31 | void mew(void); |
laxman7117 | 0:0080ab59b360 | 32 | void attack_sound(); |
laxman7117 | 0:0080ab59b360 | 33 | |
laxman7117 | 0:0080ab59b360 | 34 | void sound(char * wav) |
laxman7117 | 0:0080ab59b360 | 35 | { |
laxman7117 | 0:0080ab59b360 | 36 | FILE *wave_file; |
laxman7117 | 0:0080ab59b360 | 37 | wave_file=fopen(wav,"r"); |
laxman7117 | 0:0080ab59b360 | 38 | PWMout.period(1.0/400000.0); |
laxman7117 | 0:0080ab59b360 | 39 | // play wav file |
laxman7117 | 0:0080ab59b360 | 40 | waver.play(wave_file); |
laxman7117 | 0:0080ab59b360 | 41 | |
laxman7117 | 0:0080ab59b360 | 42 | // close wav file |
laxman7117 | 0:0080ab59b360 | 43 | fclose(wave_file); |
laxman7117 | 0:0080ab59b360 | 44 | } |
laxman7117 | 0:0080ab59b360 | 45 | int D = 0; |
laxman7117 | 0:0080ab59b360 | 46 | void led1_thread(void const *argument) |
laxman7117 | 0:0080ab59b360 | 47 | { |
laxman7117 | 0:0080ab59b360 | 48 | while(1){ |
laxman7117 | 0:0080ab59b360 | 49 | sound("/sd/battle16.wav"); |
laxman7117 | 0:0080ab59b360 | 50 | } |
laxman7117 | 0:0080ab59b360 | 51 | } |
laxman7117 | 0:0080ab59b360 | 52 | |
laxman7117 | 0:0080ab59b360 | 53 | int main() |
laxman7117 | 0:0080ab59b360 | 54 | { |
laxman7117 | 0:0080ab59b360 | 55 | |
laxman7117 | 0:0080ab59b360 | 56 | pb.mode(PullUp); |
laxman7117 | 0:0080ab59b360 | 57 | int Position; |
laxman7117 | 0:0080ab59b360 | 58 | Thread thread1(led1_thread); |
laxman7117 | 0:0080ab59b360 | 59 | uLCD.cls(); |
laxman7117 | 0:0080ab59b360 | 60 | uLCD.media_init(); |
laxman7117 | 0:0080ab59b360 | 61 | uLCD.set_sector_address(0x0000, 0x07CA); |
laxman7117 | 0:0080ab59b360 | 62 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 63 | |
laxman7117 | 0:0080ab59b360 | 64 | while (1) { |
laxman7117 | 0:0080ab59b360 | 65 | int test[2] = {99,99}; |
laxman7117 | 0:0080ab59b360 | 66 | test[1] = test[0]; |
laxman7117 | 0:0080ab59b360 | 67 | test[0] = pb; |
laxman7117 | 0:0080ab59b360 | 68 | if (test[0] != test[1] && test[0] == 0){ |
laxman7117 | 0:0080ab59b360 | 69 | break; |
laxman7117 | 0:0080ab59b360 | 70 | } |
laxman7117 | 0:0080ab59b360 | 71 | } |
laxman7117 | 0:0080ab59b360 | 72 | uLCD.cls(); |
laxman7117 | 0:0080ab59b360 | 73 | uLCD.set_sector_address(0x0000, 0x06AB); |
laxman7117 | 0:0080ab59b360 | 74 | for (int i = 70; i > 0; i--){ |
laxman7117 | 0:0080ab59b360 | 75 | uLCD.display_image(i,50); |
laxman7117 | 0:0080ab59b360 | 76 | wait(.01); |
laxman7117 | 0:0080ab59b360 | 77 | } |
laxman7117 | 0:0080ab59b360 | 78 | uLCD.set_sector_address(0x0000, 0x06C6); |
laxman7117 | 0:0080ab59b360 | 79 | uLCD.display_image(0,3); |
laxman7117 | 0:0080ab59b360 | 80 | uLCD.locate(0,14); |
laxman7117 | 0:0080ab59b360 | 81 | uLCD.printf("Lance wants to \nfight!"); |
laxman7117 | 0:0080ab59b360 | 82 | wait(2); |
laxman7117 | 0:0080ab59b360 | 83 | uLCD.set_sector_address(0x0000, 0x0707); |
laxman7117 | 0:0080ab59b360 | 84 | uLCD.display_image(0,3); |
laxman7117 | 0:0080ab59b360 | 85 | wait(.5); |
laxman7117 | 0:0080ab59b360 | 86 | uLCD.set_sector_address(0x0000, 0x0748); |
laxman7117 | 0:0080ab59b360 | 87 | uLCD.display_image(0,3); |
laxman7117 | 0:0080ab59b360 | 88 | wait(.5); |
laxman7117 | 0:0080ab59b360 | 89 | uLCD.set_sector_address(0x0000, 0x0789); |
laxman7117 | 0:0080ab59b360 | 90 | uLCD.display_image(0,3); |
laxman7117 | 0:0080ab59b360 | 91 | wait(.5); |
laxman7117 | 0:0080ab59b360 | 92 | redraw(); |
laxman7117 | 0:0080ab59b360 | 93 | |
laxman7117 | 0:0080ab59b360 | 94 | while (1) { |
laxman7117 | 0:0080ab59b360 | 95 | Position = select_attack(); |
laxman7117 | 0:0080ab59b360 | 96 | if (myNav.fire()){ |
laxman7117 | 0:0080ab59b360 | 97 | attack(Position); |
laxman7117 | 0:0080ab59b360 | 98 | wait(.3); |
laxman7117 | 0:0080ab59b360 | 99 | mew(); |
laxman7117 | 0:0080ab59b360 | 100 | } |
laxman7117 | 0:0080ab59b360 | 101 | } |
laxman7117 | 0:0080ab59b360 | 102 | } |
laxman7117 | 0:0080ab59b360 | 103 | |
laxman7117 | 0:0080ab59b360 | 104 | void display_attacks(void){ |
laxman7117 | 0:0080ab59b360 | 105 | uLCD.locate(0,14); |
laxman7117 | 0:0080ab59b360 | 106 | uLCD.printf("Tackle"); |
laxman7117 | 0:0080ab59b360 | 107 | uLCD.locate(8,14); |
laxman7117 | 0:0080ab59b360 | 108 | uLCD.printf("Thunder"); |
laxman7117 | 0:0080ab59b360 | 109 | uLCD.locate(0,15); |
laxman7117 | 0:0080ab59b360 | 110 | uLCD.printf("Slam"); |
laxman7117 | 0:0080ab59b360 | 111 | uLCD.locate(8,15); |
laxman7117 | 0:0080ab59b360 | 112 | uLCD.printf("Shock"); |
laxman7117 | 0:0080ab59b360 | 113 | } |
laxman7117 | 0:0080ab59b360 | 114 | |
laxman7117 | 0:0080ab59b360 | 115 | int select_attack(void){ |
laxman7117 | 0:0080ab59b360 | 116 | if (myNav.right()){ |
laxman7117 | 0:0080ab59b360 | 117 | uLCD.rectangle(0, 111, 50, 119, BLACK); |
laxman7117 | 0:0080ab59b360 | 118 | uLCD.rectangle(0, 119, 50, 127, BLACK); |
laxman7117 | 0:0080ab59b360 | 119 | uLCD.rectangle(55, 119, 105, 127, BLACK); |
laxman7117 | 0:0080ab59b360 | 120 | |
laxman7117 | 0:0080ab59b360 | 121 | uLCD.rectangle(55, 111, 105, 119, 0x1F); |
laxman7117 | 0:0080ab59b360 | 122 | count = 1; |
laxman7117 | 0:0080ab59b360 | 123 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 124 | } |
laxman7117 | 0:0080ab59b360 | 125 | if (myNav.up()){ |
laxman7117 | 0:0080ab59b360 | 126 | uLCD.rectangle(55, 119, 105, 127, BLACK); |
laxman7117 | 0:0080ab59b360 | 127 | uLCD.rectangle(55, 111, 105, 119, BLACK); |
laxman7117 | 0:0080ab59b360 | 128 | uLCD.rectangle(0, 119, 50, 127, BLACK); |
laxman7117 | 0:0080ab59b360 | 129 | |
laxman7117 | 0:0080ab59b360 | 130 | uLCD.rectangle(0, 111, 50, 119, 0x1F); |
laxman7117 | 0:0080ab59b360 | 131 | count = 2; |
laxman7117 | 0:0080ab59b360 | 132 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 133 | } |
laxman7117 | 0:0080ab59b360 | 134 | if (myNav.left()){ |
laxman7117 | 0:0080ab59b360 | 135 | uLCD.rectangle(55, 119, 105, 127, BLACK); |
laxman7117 | 0:0080ab59b360 | 136 | uLCD.rectangle(0, 111, 50, 119, BLACK); |
laxman7117 | 0:0080ab59b360 | 137 | uLCD.rectangle(55, 111, 105, 119, BLACK); |
laxman7117 | 0:0080ab59b360 | 138 | |
laxman7117 | 0:0080ab59b360 | 139 | uLCD.rectangle(0, 119, 50, 127, 0x1F); |
laxman7117 | 0:0080ab59b360 | 140 | count = 3; |
laxman7117 | 0:0080ab59b360 | 141 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 142 | } |
laxman7117 | 0:0080ab59b360 | 143 | if (myNav.down()){ |
laxman7117 | 0:0080ab59b360 | 144 | uLCD.rectangle(0, 119, 50, 127, BLACK); |
laxman7117 | 0:0080ab59b360 | 145 | uLCD.rectangle(0, 111, 50, 119, BLACK); |
laxman7117 | 0:0080ab59b360 | 146 | uLCD.rectangle(55, 111, 105, 119, BLACK); |
laxman7117 | 0:0080ab59b360 | 147 | |
laxman7117 | 0:0080ab59b360 | 148 | uLCD.rectangle(55, 119, 105, 127, 0x1F); |
laxman7117 | 0:0080ab59b360 | 149 | count = 4; |
laxman7117 | 0:0080ab59b360 | 150 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 151 | } |
laxman7117 | 0:0080ab59b360 | 152 | |
laxman7117 | 0:0080ab59b360 | 153 | return count; |
laxman7117 | 0:0080ab59b360 | 154 | } |
laxman7117 | 0:0080ab59b360 | 155 | |
laxman7117 | 0:0080ab59b360 | 156 | void attack(int A) { |
laxman7117 | 0:0080ab59b360 | 157 | if (A == 1){ |
laxman7117 | 0:0080ab59b360 | 158 | uLCD.rectangle(55, 111, 105, 119, BLACK); |
laxman7117 | 0:0080ab59b360 | 159 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 160 | uLCD.rectangle(55, 111, 105, 119, 0x1F); |
laxman7117 | 0:0080ab59b360 | 161 | Thunder(); |
laxman7117 | 0:0080ab59b360 | 162 | } |
laxman7117 | 0:0080ab59b360 | 163 | if (A == 2){ |
laxman7117 | 0:0080ab59b360 | 164 | uLCD.rectangle(0, 111, 50, 119, BLACK); |
laxman7117 | 0:0080ab59b360 | 165 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 166 | uLCD.rectangle(0, 111, 50, 119, 0x1F); |
laxman7117 | 0:0080ab59b360 | 167 | Tackle(); |
laxman7117 | 0:0080ab59b360 | 168 | } |
laxman7117 | 0:0080ab59b360 | 169 | if (A == 3){ |
laxman7117 | 0:0080ab59b360 | 170 | uLCD.rectangle(0, 119, 50, 127, BLACK); |
laxman7117 | 0:0080ab59b360 | 171 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 172 | uLCD.rectangle(0, 119, 50, 127, 0x1F); |
laxman7117 | 0:0080ab59b360 | 173 | Slam(); |
laxman7117 | 0:0080ab59b360 | 174 | } |
laxman7117 | 0:0080ab59b360 | 175 | if (A == 4){ |
laxman7117 | 0:0080ab59b360 | 176 | uLCD.rectangle(55, 119, 105, 127, BLACK); |
laxman7117 | 0:0080ab59b360 | 177 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 178 | uLCD.rectangle(55, 119, 105, 127, 0x1F); |
laxman7117 | 0:0080ab59b360 | 179 | Shock(); |
laxman7117 | 0:0080ab59b360 | 180 | } |
laxman7117 | 0:0080ab59b360 | 181 | |
laxman7117 | 0:0080ab59b360 | 182 | } |
laxman7117 | 0:0080ab59b360 | 183 | |
laxman7117 | 0:0080ab59b360 | 184 | |
laxman7117 | 0:0080ab59b360 | 185 | void Thunder(void) { |
laxman7117 | 0:0080ab59b360 | 186 | uLCD.locate(0,14); |
laxman7117 | 0:0080ab59b360 | 187 | uLCD.set_sector_address(0x0000, 0x0000); |
laxman7117 | 0:0080ab59b360 | 188 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 189 | uLCD.printf("Pikachu used \nThunder!"); |
laxman7117 | 0:0080ab59b360 | 190 | wait(1.5); |
laxman7117 | 0:0080ab59b360 | 191 | uLCD.set_sector_address(0x0000, 0x0249); |
laxman7117 | 0:0080ab59b360 | 192 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 193 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 194 | uLCD.set_sector_address(0x0000, 0x028A); |
laxman7117 | 0:0080ab59b360 | 195 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 196 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 197 | uLCD.set_sector_address(0x0000, 0x02CB); |
laxman7117 | 0:0080ab59b360 | 198 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 199 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 200 | uLCD.set_sector_address(0x0000, 0x030C); |
laxman7117 | 0:0080ab59b360 | 201 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 202 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 203 | uLCD.set_sector_address(0x0000, 0x034D); |
laxman7117 | 0:0080ab59b360 | 204 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 205 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 206 | Hx2 = Hx2 - 20; |
laxman7117 | 0:0080ab59b360 | 207 | redraw(); |
laxman7117 | 0:0080ab59b360 | 208 | } |
laxman7117 | 0:0080ab59b360 | 209 | |
laxman7117 | 0:0080ab59b360 | 210 | void Shock(void) { |
laxman7117 | 0:0080ab59b360 | 211 | uLCD.locate(0,14); |
laxman7117 | 0:0080ab59b360 | 212 | uLCD.set_sector_address(0x0000, 0x0000); |
laxman7117 | 0:0080ab59b360 | 213 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 214 | uLCD.printf("Pikachu used \nShock!"); |
laxman7117 | 0:0080ab59b360 | 215 | wait(1.5); |
laxman7117 | 0:0080ab59b360 | 216 | for (int i = 0; i < 3; i++){ |
laxman7117 | 0:0080ab59b360 | 217 | uLCD.set_sector_address(0x0000, 0x038E); |
laxman7117 | 0:0080ab59b360 | 218 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 219 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 220 | uLCD.set_sector_address(0x0000, 0x03CF); |
laxman7117 | 0:0080ab59b360 | 221 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 222 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 223 | } |
laxman7117 | 0:0080ab59b360 | 224 | Hx2 = Hx2 - 5; |
laxman7117 | 0:0080ab59b360 | 225 | redraw(); |
laxman7117 | 0:0080ab59b360 | 226 | } |
laxman7117 | 0:0080ab59b360 | 227 | |
laxman7117 | 0:0080ab59b360 | 228 | void Slam(void){ |
laxman7117 | 0:0080ab59b360 | 229 | uLCD.locate(0,14); |
laxman7117 | 0:0080ab59b360 | 230 | uLCD.set_sector_address(0x0000, 0x0000); |
laxman7117 | 0:0080ab59b360 | 231 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 232 | uLCD.printf("Pikachu used \nSlam!"); |
laxman7117 | 0:0080ab59b360 | 233 | wait(1.5); |
laxman7117 | 0:0080ab59b360 | 234 | uLCD.set_sector_address(0x0000, 0x0041); |
laxman7117 | 0:0080ab59b360 | 235 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 236 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 237 | uLCD.set_sector_address(0x0000, 0x0082); |
laxman7117 | 0:0080ab59b360 | 238 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 239 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 240 | uLCD.set_sector_address(0x0000, 0x00C3); |
laxman7117 | 0:0080ab59b360 | 241 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 242 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 243 | uLCD.set_sector_address(0x0000, 0x0104); |
laxman7117 | 0:0080ab59b360 | 244 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 245 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 246 | uLCD.set_sector_address(0x0000, 0x00C3); |
laxman7117 | 0:0080ab59b360 | 247 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 248 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 249 | uLCD.set_sector_address(0x0000, 0x0082); |
laxman7117 | 0:0080ab59b360 | 250 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 251 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 252 | uLCD.set_sector_address(0x0000, 0x0041); |
laxman7117 | 0:0080ab59b360 | 253 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 254 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 255 | Hx2 = Hx2 - 13; |
laxman7117 | 0:0080ab59b360 | 256 | redraw(); |
laxman7117 | 0:0080ab59b360 | 257 | } |
laxman7117 | 0:0080ab59b360 | 258 | |
laxman7117 | 0:0080ab59b360 | 259 | void Tackle(void){ |
laxman7117 | 0:0080ab59b360 | 260 | uLCD.locate(0,14); |
laxman7117 | 0:0080ab59b360 | 261 | uLCD.set_sector_address(0x0000, 0x0000); |
laxman7117 | 0:0080ab59b360 | 262 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 263 | uLCD.printf("Pikachu used \nTackle!"); |
laxman7117 | 0:0080ab59b360 | 264 | wait(1.5); |
laxman7117 | 0:0080ab59b360 | 265 | uLCD.set_sector_address(0x0000, 0x0000); |
laxman7117 | 0:0080ab59b360 | 266 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 267 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 268 | uLCD.set_sector_address(0x0000, 0x0145); |
laxman7117 | 0:0080ab59b360 | 269 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 270 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 271 | uLCD.set_sector_address(0x0000, 0x0186); |
laxman7117 | 0:0080ab59b360 | 272 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 273 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 274 | uLCD.set_sector_address(0x0000, 0x01C7); |
laxman7117 | 0:0080ab59b360 | 275 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 276 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 277 | uLCD.set_sector_address(0x0000, 0x0208); |
laxman7117 | 0:0080ab59b360 | 278 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 279 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 280 | uLCD.set_sector_address(0x0000, 0x01C7); |
laxman7117 | 0:0080ab59b360 | 281 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 282 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 283 | uLCD.set_sector_address(0x0000, 0x0186); |
laxman7117 | 0:0080ab59b360 | 284 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 285 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 286 | Hx2 = Hx2 - 8; |
laxman7117 | 0:0080ab59b360 | 287 | redraw(); |
laxman7117 | 0:0080ab59b360 | 288 | } |
laxman7117 | 0:0080ab59b360 | 289 | void redraw(void){ |
laxman7117 | 0:0080ab59b360 | 290 | uLCD.set_sector_address(0x0000, 0x0000); |
laxman7117 | 0:0080ab59b360 | 291 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 292 | |
laxman7117 | 0:0080ab59b360 | 293 | display_attacks(); |
laxman7117 | 0:0080ab59b360 | 294 | uLCD.locate(0,1); |
laxman7117 | 0:0080ab59b360 | 295 | uLCD.printf("HP"); |
laxman7117 | 0:0080ab59b360 | 296 | uLCD.locate(11,6); |
laxman7117 | 0:0080ab59b360 | 297 | uLCD.printf("HP"); |
laxman7117 | 0:0080ab59b360 | 298 | uLCD.filled_rectangle(0, 20, Hx2, 25, RED); // enemy Health |
laxman7117 | 0:0080ab59b360 | 299 | uLCD.filled_rectangle(77, 60, Px2, 65, RED); // player Health |
laxman7117 | 0:0080ab59b360 | 300 | if (Hx2 <= 0 || Px2 <= 0){ |
laxman7117 | 0:0080ab59b360 | 301 | wait(2); |
laxman7117 | 0:0080ab59b360 | 302 | Game_Over(); |
laxman7117 | 0:0080ab59b360 | 303 | } |
laxman7117 | 0:0080ab59b360 | 304 | } |
laxman7117 | 0:0080ab59b360 | 305 | |
laxman7117 | 0:0080ab59b360 | 306 | void mew(void){ |
laxman7117 | 0:0080ab59b360 | 307 | if(Hx2 % 2){ |
laxman7117 | 0:0080ab59b360 | 308 | uLCD.locate(0,14); |
laxman7117 | 0:0080ab59b360 | 309 | uLCD.set_sector_address(0x0000, 0x0000); |
laxman7117 | 0:0080ab59b360 | 310 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 311 | uLCD.printf("Mew used \nPsybeam!"); |
laxman7117 | 0:0080ab59b360 | 312 | wait(1.5); |
laxman7117 | 0:0080ab59b360 | 313 | uLCD.set_sector_address(0x0000, 0x0410); |
laxman7117 | 0:0080ab59b360 | 314 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 315 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 316 | uLCD.set_sector_address(0x0000, 0x0451); |
laxman7117 | 0:0080ab59b360 | 317 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 318 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 319 | uLCD.set_sector_address(0x0000, 0x0492); |
laxman7117 | 0:0080ab59b360 | 320 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 321 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 322 | uLCD.set_sector_address(0x0000, 0x04D3); |
laxman7117 | 0:0080ab59b360 | 323 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 324 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 325 | Px2 = Px2 - 9; |
laxman7117 | 0:0080ab59b360 | 326 | } |
laxman7117 | 0:0080ab59b360 | 327 | else { |
laxman7117 | 0:0080ab59b360 | 328 | uLCD.locate(0,14); |
laxman7117 | 0:0080ab59b360 | 329 | uLCD.set_sector_address(0x0000, 0x0000); |
laxman7117 | 0:0080ab59b360 | 330 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 331 | uLCD.printf("Mew used \nAncient Power!"); |
laxman7117 | 0:0080ab59b360 | 332 | wait(1.5); |
laxman7117 | 0:0080ab59b360 | 333 | uLCD.set_sector_address(0x0000, 0x0514); |
laxman7117 | 0:0080ab59b360 | 334 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 335 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 336 | uLCD.set_sector_address(0x0000, 0x0555); |
laxman7117 | 0:0080ab59b360 | 337 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 338 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 339 | uLCD.set_sector_address(0x0000, 0x0514); |
laxman7117 | 0:0080ab59b360 | 340 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 341 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 342 | uLCD.set_sector_address(0x0000, 0x0596); |
laxman7117 | 0:0080ab59b360 | 343 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 344 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 345 | uLCD.set_sector_address(0x0000, 0x05D7); |
laxman7117 | 0:0080ab59b360 | 346 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 347 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 348 | uLCD.set_sector_address(0x0000, 0x0618); |
laxman7117 | 0:0080ab59b360 | 349 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 350 | wait(.2); |
laxman7117 | 0:0080ab59b360 | 351 | Px2 = Px2 - 12; |
laxman7117 | 0:0080ab59b360 | 352 | } |
laxman7117 | 0:0080ab59b360 | 353 | |
laxman7117 | 0:0080ab59b360 | 354 | redraw(); |
laxman7117 | 0:0080ab59b360 | 355 | } |
laxman7117 | 0:0080ab59b360 | 356 | |
laxman7117 | 0:0080ab59b360 | 357 | void Game_Over(void){ |
laxman7117 | 0:0080ab59b360 | 358 | uLCD.cls(); |
laxman7117 | 0:0080ab59b360 | 359 | uLCD.set_sector_address(0x0000, 0x084C); |
laxman7117 | 0:0080ab59b360 | 360 | uLCD.display_image(0,0); |
laxman7117 | 0:0080ab59b360 | 361 | //wait(.2); |
laxman7117 | 0:0080ab59b360 | 362 | wait(30); |
laxman7117 | 0:0080ab59b360 | 363 | exit(0); |
laxman7117 | 0:0080ab59b360 | 364 | } |