Mortal Kombat Game ELEC2645

Dependencies:   mbed N5110 ShiftReg Joystick

Committer:
ozy
Date:
Fri Apr 23 23:49:10 2021 +0000
Revision:
10:e83899f11e8a
Parent:
9:8c840b08a633
Child:
11:b344a64b75bf
Code after In sync fighters

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ozy 0:99b49fd71085 1 #include "Fighter.h"
ozy 0:99b49fd71085 2 #include "mbed.h"
ozy 9:8c840b08a633 3 #include <stdlib.h>
ozy 0:99b49fd71085 4
ozy 0:99b49fd71085 5 Fighter::Fighter() {}
ozy 0:99b49fd71085 6
ozy 3:1d99b6ad4f9e 7 int Fighter::get_x() {
ozy 3:1d99b6ad4f9e 8 return _x;
ozy 3:1d99b6ad4f9e 9 }
ozy 3:1d99b6ad4f9e 10
ozy 3:1d99b6ad4f9e 11 int Fighter::get_y() {
ozy 3:1d99b6ad4f9e 12 return _y;
ozy 3:1d99b6ad4f9e 13 }
ozy 3:1d99b6ad4f9e 14
ozy 7:737fb0c3dbef 15 void Fighter::init() {
ozy 7:737fb0c3dbef 16 // initialize fighter position
ozy 7:737fb0c3dbef 17 set_x(15);
ozy 10:e83899f11e8a 18 set_y(34);
ozy 7:737fb0c3dbef 19 }
ozy 7:737fb0c3dbef 20
ozy 3:1d99b6ad4f9e 21 void Fighter::set_x(int x) {
ozy 3:1d99b6ad4f9e 22 _x = x;
ozy 3:1d99b6ad4f9e 23 }
ozy 3:1d99b6ad4f9e 24
ozy 3:1d99b6ad4f9e 25 void Fighter::set_y(int y) {
ozy 3:1d99b6ad4f9e 26 _y = y;
ozy 3:1d99b6ad4f9e 27 }
ozy 3:1d99b6ad4f9e 28
ozy 7:737fb0c3dbef 29 void Fighter::add_x(int x) {
ozy 3:1d99b6ad4f9e 30 _x += x;
ozy 3:1d99b6ad4f9e 31 }
ozy 3:1d99b6ad4f9e 32
ozy 7:737fb0c3dbef 33 void Fighter::add_y(int y) {
ozy 3:1d99b6ad4f9e 34 _y += y;
ozy 3:1d99b6ad4f9e 35 }
ozy 3:1d99b6ad4f9e 36
ozy 9:8c840b08a633 37
ozy 7:737fb0c3dbef 38 void Fighter::draw(N5110 &lcd) { // drawing standing Fighter
ozy 0:99b49fd71085 39
ozy 0:99b49fd71085 40 const int standsprite[12][10] = {
ozy 0:99b49fd71085 41 { 0,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 42 { 0,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 43 { 0,0,1,1,1,1,1,1,0,0 },
ozy 0:99b49fd71085 44 { 0,0,1,0,1,1,0,1,0,0 },
ozy 0:99b49fd71085 45 { 0,1,1,0,1,1,0,1,1,0 },
ozy 0:99b49fd71085 46 { 0,1,0,0,1,1,0,0,1,0 },
ozy 0:99b49fd71085 47 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 48 { 0,0,1,1,0,0,1,1,0,0 },
ozy 0:99b49fd71085 49 { 0,0,1,0,0,0,0,1,0,0 },
ozy 0:99b49fd71085 50 { 0,1,1,0,0,0,0,1,1,0 },
ozy 0:99b49fd71085 51 { 0,1,0,0,0,0,0,0,1,0 },
ozy 0:99b49fd71085 52 { 0,1,0,0,0,0,0,0,1,0 },
ozy 0:99b49fd71085 53 };
ozy 7:737fb0c3dbef 54
ozy 7:737fb0c3dbef 55 lcd.drawSprite(_x,_y,12,10,(int *)standsprite);
ozy 7:737fb0c3dbef 56 }
ozy 7:737fb0c3dbef 57
ozy 7:737fb0c3dbef 58 // ************************************************************************
ozy 7:737fb0c3dbef 59
ozy 7:737fb0c3dbef 60 void Fighter::move_left(N5110 &lcd){
ozy 0:99b49fd71085 61 const int run_left[12][10] = {
ozy 0:99b49fd71085 62 { 0,0,1,1,1,0,0,0,0,0 },
ozy 0:99b49fd71085 63 { 0,0,1,1,1,0,0,0,0,0 },
ozy 0:99b49fd71085 64 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 65 { 0,0,1,0,1,1,1,1,0,0 },
ozy 0:99b49fd71085 66 { 1,1,1,0,1,1,0,1,1,0 },
ozy 0:99b49fd71085 67 { 0,0,0,0,1,1,0,0,0,1 },
ozy 0:99b49fd71085 68 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 69 { 0,0,1,1,0,0,1,1,0,0 },
ozy 0:99b49fd71085 70 { 0,1,1,0,0,0,1,1,1,1 },
ozy 0:99b49fd71085 71 { 0,0,1,1,0,0,0,0,0,0 },
ozy 0:99b49fd71085 72 { 0,0,0,1,1,0,0,0,0,0 },
ozy 0:99b49fd71085 73 { 0,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 74 };
ozy 7:737fb0c3dbef 75
ozy 7:737fb0c3dbef 76 const int midrun_left[12][10] = {
ozy 0:99b49fd71085 77 { 0,0,1,1,1,0,0,0,0,0 },
ozy 0:99b49fd71085 78 { 0,0,1,1,1,0,0,0,0,0 },
ozy 0:99b49fd71085 79 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 80 { 0,0,1,0,1,1,1,1,0,0 },
ozy 0:99b49fd71085 81 { 1,1,1,0,1,1,0,1,1,0 },
ozy 0:99b49fd71085 82 { 0,0,0,0,1,1,0,0,0,1 },
ozy 0:99b49fd71085 83 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 84 { 0,0,1,1,0,0,1,1,0,0 },
ozy 1:3bdadf6f6dbd 85 { 0,0,0,1,1,1,1,0,0,0 },
ozy 1:3bdadf6f6dbd 86 { 0,0,0,0,1,1,0,0,0,0 },
ozy 1:3bdadf6f6dbd 87 { 0,0,0,0,1,0,1,0,0,0 },
ozy 1:3bdadf6f6dbd 88 { 0,0,0,1,0,0,0,1,0,0 },
ozy 0:99b49fd71085 89 };
ozy 10:e83899f11e8a 90
ozy 10:e83899f11e8a 91 // code to toggle between both move left animations (show some leg movement!)
ozy 10:e83899f11e8a 92 int x = rand() % 2;
ozy 10:e83899f11e8a 93 if (x == 0) {
ozy 10:e83899f11e8a 94 x = 1;
ozy 10:e83899f11e8a 95 lcd.drawSprite(_x,_y,12,10,(int *)run_left);
ozy 10:e83899f11e8a 96 }
ozy 10:e83899f11e8a 97 else if(x == 1) {
ozy 10:e83899f11e8a 98 x = 0;
ozy 10:e83899f11e8a 99 lcd.drawSprite(_x,_y,12,10,(int *)midrun_left);
ozy 10:e83899f11e8a 100 }
ozy 10:e83899f11e8a 101
ozy 7:737fb0c3dbef 102 }
ozy 7:737fb0c3dbef 103
ozy 10:e83899f11e8a 104
ozy 7:737fb0c3dbef 105 // ************************************************************************
ozy 7:737fb0c3dbef 106
ozy 7:737fb0c3dbef 107 void Fighter::move_right(N5110 &lcd) {
ozy 7:737fb0c3dbef 108
ozy 0:99b49fd71085 109 const int run_right[12][10] = {
ozy 0:99b49fd71085 110 { 0,0,0,0,0,1,1,1,0,0 },
ozy 0:99b49fd71085 111 { 0,0,0,0,0,1,1,1,0,0 },
ozy 0:99b49fd71085 112 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 113 { 0,0,1,1,1,1,0,1,0,0 },
ozy 0:99b49fd71085 114 { 0,1,1,0,1,1,0,1,1,1 },
ozy 0:99b49fd71085 115 { 1,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 116 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 117 { 0,0,1,1,0,0,1,1,0,0 },
ozy 0:99b49fd71085 118 { 1,1,1,1,0,0,0,1,1,0 },
ozy 0:99b49fd71085 119 { 0,0,0,0,0,0,1,1,0,0 },
ozy 0:99b49fd71085 120 { 0,0,0,0,0,1,1,0,0,0 },
ozy 0:99b49fd71085 121 { 0,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 122 };
ozy 0:99b49fd71085 123
ozy 7:737fb0c3dbef 124 const int midrun_right[12][10] = {
ozy 0:99b49fd71085 125 { 0,0,0,0,0,1,1,1,0,0 },
ozy 0:99b49fd71085 126 { 0,0,0,0,0,1,1,1,0,0 },
ozy 0:99b49fd71085 127 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 128 { 0,0,1,1,1,1,0,1,0,0 },
ozy 0:99b49fd71085 129 { 0,1,1,0,1,1,0,1,1,1 },
ozy 0:99b49fd71085 130 { 1,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 131 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 132 { 0,0,1,1,0,0,1,1,0,0 },
ozy 0:99b49fd71085 133 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 134 { 0,0,0,0,1,1,0,0,0,0 },
ozy 1:3bdadf6f6dbd 135 { 0,0,0,1,0,1,0,0,0,0 },
ozy 0:99b49fd71085 136 { 0,0,1,0,0,0,1,0,0,0 },
ozy 0:99b49fd71085 137 };
ozy 10:e83899f11e8a 138
ozy 10:e83899f11e8a 139 // code to toggle between both move right animations
ozy 10:e83899f11e8a 140 int x = rand() % 2;
ozy 10:e83899f11e8a 141 if (x == 0) {
ozy 10:e83899f11e8a 142 x = 1;
ozy 10:e83899f11e8a 143 lcd.drawSprite(_x,_y,12,10,(int *)run_right);
ozy 10:e83899f11e8a 144 }
ozy 10:e83899f11e8a 145 else if(x == 1) {
ozy 10:e83899f11e8a 146 x = 0;
ozy 10:e83899f11e8a 147 lcd.drawSprite(_x,_y,12,10,(int *)midrun_right);
ozy 10:e83899f11e8a 148 }
ozy 10:e83899f11e8a 149
ozy 7:737fb0c3dbef 150 }
ozy 7:737fb0c3dbef 151
ozy 7:737fb0c3dbef 152 // ************************************************************************
ozy 7:737fb0c3dbef 153
ozy 7:737fb0c3dbef 154 void Fighter::kick_right(N5110 &lcd) {
ozy 7:737fb0c3dbef 155 const int kick[12][10] = {
ozy 0:99b49fd71085 156 { 0,1,1,0,0,0,0,0,0,0 },
ozy 0:99b49fd71085 157 { 0,1,1,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 158 { 0,0,0,1,1,1,1,0,0,1 },
ozy 0:99b49fd71085 159 { 0,0,1,1,1,0,0,0,1,1 },
ozy 0:99b49fd71085 160 { 0,1,1,1,1,1,1,1,0,0 },
ozy 0:99b49fd71085 161 { 0,1,0,0,1,1,1,0,0,0 },
ozy 0:99b49fd71085 162 { 1,1,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 163 { 0,0,0,0,1,0,0,0,0,0 },
ozy 0:99b49fd71085 164 { 0,0,0,1,1,0,0,0,0,0 },
ozy 0:99b49fd71085 165 { 0,0,0,1,0,0,0,0,0,0 },
ozy 0:99b49fd71085 166 { 0,0,1,1,0,0,0,0,0,0 },
ozy 0:99b49fd71085 167 { 0,0,1,1,0,0,0,0,0,0 },
ozy 0:99b49fd71085 168 };
ozy 7:737fb0c3dbef 169 lcd.drawSprite(_x,_y,12,10,(int *)kick);
ozy 7:737fb0c3dbef 170 }
ozy 7:737fb0c3dbef 171
ozy 7:737fb0c3dbef 172 // ************************************************************************
ozy 7:737fb0c3dbef 173
ozy 7:737fb0c3dbef 174 void Fighter::kick_left(N5110 &lcd) {
ozy 7:737fb0c3dbef 175 const int kick[12][10] = {
ozy 0:99b49fd71085 176 { 0,0,0,0,0,0,0,1,1,0 },
ozy 0:99b49fd71085 177 { 0,0,0,0,1,1,0,1,1,0 },
ozy 0:99b49fd71085 178 { 1,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 179 { 1,1,0,0,0,1,1,1,0,0 },
ozy 0:99b49fd71085 180 { 0,0,1,1,1,1,1,1,1,0 },
ozy 0:99b49fd71085 181 { 0,0,0,1,1,1,0,0,1,0 },
ozy 0:99b49fd71085 182 { 0,0,0,0,1,1,0,0,1,1 },
ozy 0:99b49fd71085 183 { 0,0,0,0,0,1,0,0,0,0 },
ozy 0:99b49fd71085 184 { 0,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 185 { 0,0,0,0,1,0,0,0,0,0 },
ozy 0:99b49fd71085 186 { 0,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 187 { 0,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 188 };
ozy 7:737fb0c3dbef 189 lcd.drawSprite(_x,_y,12,10,(int *)kick);
ozy 7:737fb0c3dbef 190 }
ozy 7:737fb0c3dbef 191
ozy 7:737fb0c3dbef 192 // ************************************************************************
ozy 7:737fb0c3dbef 193
ozy 7:737fb0c3dbef 194 void Fighter::punch_right(N5110 &lcd) {
ozy 7:737fb0c3dbef 195 const int punch[12][10] = {
ozy 0:99b49fd71085 196 { 0,0,0,0,1,1,0,0,0,1 },
ozy 0:99b49fd71085 197 { 0,0,0,0,1,1,0,0,1,1 },
ozy 0:99b49fd71085 198 { 0,0,1,1,1,1,0,1,1,0 },
ozy 0:99b49fd71085 199 { 0,1,0,0,1,1,1,1,0,0 },
ozy 0:99b49fd71085 200 { 0,1,1,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 201 { 0,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 202 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 203 { 0,0,0,1,0,0,1,1,0,0 },
ozy 0:99b49fd71085 204 { 0,0,1,1,0,0,1,1,0,0 },
ozy 0:99b49fd71085 205 { 0,0,1,0,0,0,1,0,0,0 },
ozy 0:99b49fd71085 206 { 0,1,1,0,0,0,1,0,0,0 },
ozy 0:99b49fd71085 207 { 1,1,0,0,0,1,1,0,0,0 },
ozy 0:99b49fd71085 208 };
ozy 7:737fb0c3dbef 209 lcd.drawSprite(_x,_y,12,10,(int *)punch);
ozy 7:737fb0c3dbef 210 }
ozy 7:737fb0c3dbef 211
ozy 7:737fb0c3dbef 212 // ************************************************************************
ozy 7:737fb0c3dbef 213
ozy 7:737fb0c3dbef 214 void Fighter::punch_left(N5110 &lcd) {
ozy 7:737fb0c3dbef 215 const int punch[12][10] = {
ozy 0:99b49fd71085 216 { 1,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 217 { 1,1,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 218 { 0,1,1,0,1,1,1,1,0,0 },
ozy 0:99b49fd71085 219 { 0,0,1,1,1,1,0,0,1,0 },
ozy 0:99b49fd71085 220 { 0,0,0,0,1,1,0,1,1,0 },
ozy 0:99b49fd71085 221 { 0,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 222 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 223 { 0,0,1,1,0,0,1,0,0,0 },
ozy 0:99b49fd71085 224 { 0,0,1,1,0,0,1,1,0,0 },
ozy 0:99b49fd71085 225 { 0,0,0,1,0,0,0,1,0,0 },
ozy 0:99b49fd71085 226 { 0,0,0,1,0,0,0,1,1,0 },
ozy 0:99b49fd71085 227 { 0,0,0,1,1,0,0,0,1,1 },
ozy 0:99b49fd71085 228 };
ozy 7:737fb0c3dbef 229 lcd.drawSprite(_x,_y,12,10,(int *)punch);
ozy 7:737fb0c3dbef 230 }
ozy 7:737fb0c3dbef 231
ozy 7:737fb0c3dbef 232 // ************************************************************************
ozy 7:737fb0c3dbef 233
ozy 7:737fb0c3dbef 234 void Fighter::guard(N5110 &lcd) {
ozy 0:99b49fd71085 235 const int guard[12][10] = {
ozy 0:99b49fd71085 236 { 0,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 237 { 0,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 238 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 239 { 0,0,1,0,1,1,0,1,0,0 },
ozy 0:99b49fd71085 240 { 0,0,1,0,1,1,0,1,0,0 },
ozy 0:99b49fd71085 241 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 242 { 0,0,0,0,1,1,0,0,0,0 },
ozy 0:99b49fd71085 243 { 0,0,0,1,1,1,1,0,0,0 },
ozy 0:99b49fd71085 244 { 0,0,1,1,1,1,1,1,0,0 },
ozy 0:99b49fd71085 245 { 0,1,0,0,0,0,0,0,1,0 },
ozy 0:99b49fd71085 246 { 0,1,0,0,0,0,0,0,1,0 },
ozy 0:99b49fd71085 247 { 0,1,0,0,0,0,0,0,1,0 },
ozy 0:99b49fd71085 248 };
ozy 7:737fb0c3dbef 249 lcd.drawSprite(_x,_y,12,10,(int *)guard);
ozy 7:737fb0c3dbef 250 }
ozy 6:a1a7dc264fed 251
ozy 7:737fb0c3dbef 252 void Fighter::move_fighter(N5110 &lcd, DigitalIn &buttonA, DigitalIn &buttonB, DigitalIn &buttonC, DigitalIn &buttonD, AnalogIn &joy_v, AnalogIn &joy_h) {
ozy 6:a1a7dc264fed 253 // getting joystick coordinates using read() function
ozy 6:a1a7dc264fed 254 // joystick centered at (0.50,0.50) with utmost left at (1.00,0.50) and utmost right being (0.00,0.50)
ozy 6:a1a7dc264fed 255 // read each of the pins
ozy 7:737fb0c3dbef 256 float x = joy_h.read();
ozy 7:737fb0c3dbef 257 float y = joy_v.read();
ozy 8:e2e2eb4ea0ca 258 // printf("x = %.2f | y = %.2f \n",x,y);
ozy 7:737fb0c3dbef 259
ozy 7:737fb0c3dbef 260 int x_pos = get_x();
ozy 8:e2e2eb4ea0ca 261 // printf("fighter x pos = %i \n", x_pos);
ozy 7:737fb0c3dbef 262
ozy 6:a1a7dc264fed 263 /*
ozy 6:a1a7dc264fed 264 Code idea:
ozy 6:a1a7dc264fed 265 if joystick is not moved , display standing sprite
ozy 6:a1a7dc264fed 266 if joystick is moved right, toggle between runright and midrunright
ozy 6:a1a7dc264fed 267 if joystick is moved left, toggle between runleft and midrunleft
ozy 6:a1a7dc264fed 268 */
ozy 7:737fb0c3dbef 269 if(x > 0.48 && x < 0.52) { // joystick not moved - we use ± 0.02 to take account of fluctuation in joystick tolerance and noice on ADC
ozy 7:737fb0c3dbef 270 draw(lcd); // draw standing fighter
ozy 6:a1a7dc264fed 271
ozy 6:a1a7dc264fed 272 // Preform kick move if user presses button A
ozy 6:a1a7dc264fed 273 if (buttonA.read() == 1) {
ozy 7:737fb0c3dbef 274 kick_right(lcd); // draw kick on same coordinates as the standing sprite
ozy 6:a1a7dc264fed 275 }
ozy 6:a1a7dc264fed 276 // Preform punch move if user presses button B
ozy 6:a1a7dc264fed 277 if (buttonB.read() == 1) {
ozy 7:737fb0c3dbef 278 punch_right(lcd); // draw kick
ozy 6:a1a7dc264fed 279 }
ozy 6:a1a7dc264fed 280 // Guard if user presses button C
ozy 8:e2e2eb4ea0ca 281 if (buttonC.read() == 1) {
ozy 7:737fb0c3dbef 282 guard(lcd); // draw guard move frame
ozy 6:a1a7dc264fed 283 }
ozy 7:737fb0c3dbef 284 }
ozy 7:737fb0c3dbef 285 else if(x < 0.48) { // joystick moved to the right
ozy 6:a1a7dc264fed 286 // print the move_right animation, refresh, then print the 2nd move_right animation (toggling animations to create moving legs!)
ozy 10:e83899f11e8a 287 add_x(4); // increment by 5
ozy 7:737fb0c3dbef 288 move_right(lcd);
ozy 7:737fb0c3dbef 289
ozy 7:737fb0c3dbef 290 if (x_pos >= 65) { // code to stop fighter moving out of lcd screen
ozy 7:737fb0c3dbef 291 add_x(-5);
ozy 6:a1a7dc264fed 292 }
ozy 7:737fb0c3dbef 293
ozy 7:737fb0c3dbef 294
ozy 6:a1a7dc264fed 295 // kick if user presses button A
ozy 6:a1a7dc264fed 296 if (buttonA.read() == 1) {
ozy 7:737fb0c3dbef 297 kick_right(lcd);
ozy 7:737fb0c3dbef 298 }
ozy 6:a1a7dc264fed 299 // Preform punch move if user presses button B
ozy 6:a1a7dc264fed 300 if (buttonB.read() == 1) {
ozy 7:737fb0c3dbef 301 punch_right(lcd); // draw kick on same coordinates as the sprite
ozy 10:e83899f11e8a 302 }
ozy 6:a1a7dc264fed 303 // Guard if user presses button C
ozy 8:e2e2eb4ea0ca 304 if (buttonC.read() == 1) { // we use while not if here because user would hold to guard
ozy 7:737fb0c3dbef 305 guard(lcd); // draw kick on same coordinates as the sprite
ozy 6:a1a7dc264fed 306 }
ozy 10:e83899f11e8a 307 /*
ozy 9:8c840b08a633 308 if (buttonD.read() == 1) { // code for fighter to jump while running
ozy 9:8c840b08a633 309 add_y(-13); // temporarily increase y coordinates
ozy 9:8c840b08a633 310 add_x(10); // increment by 10
ozy 9:8c840b08a633 311 move_right(lcd);
ozy 9:8c840b08a633 312 wait(0.15);
ozy 9:8c840b08a633 313 lcd.refresh();
ozy 9:8c840b08a633 314 add_y(13); // return back to ground
ozy 9:8c840b08a633 315 draw(lcd);
ozy 9:8c840b08a633 316 wait(0.15);
ozy 9:8c840b08a633 317 lcd.refresh();
ozy 9:8c840b08a633 318 }
ozy 10:e83899f11e8a 319 */
ozy 6:a1a7dc264fed 320 }
ozy 7:737fb0c3dbef 321 else if(x > 0.52) { // joystick moved to the left
ozy 10:e83899f11e8a 322 add_x(-4); // decrement left by 5
ozy 7:737fb0c3dbef 323 move_left(lcd);
ozy 0:99b49fd71085 324
ozy 10:e83899f11e8a 325 if (x_pos <= 8) { // code to stop fighter moving out of lcd screen
ozy 7:737fb0c3dbef 326 add_x(5);
ozy 7:737fb0c3dbef 327 }
ozy 0:99b49fd71085 328
ozy 7:737fb0c3dbef 329 // kick if user presses button A
ozy 7:737fb0c3dbef 330 if (buttonA.read() == 1) {
ozy 7:737fb0c3dbef 331 kick_left(lcd);
ozy 7:737fb0c3dbef 332 }
ozy 7:737fb0c3dbef 333 if (buttonB.read() == 1) {
ozy 7:737fb0c3dbef 334 punch_left(lcd); // draw punch on same coordinates as the sprite
ozy 7:737fb0c3dbef 335 }
ozy 7:737fb0c3dbef 336 // Guard if user presses button C
ozy 8:e2e2eb4ea0ca 337 if (buttonC.read() == 1) {
ozy 8:e2e2eb4ea0ca 338 guard(lcd);
ozy 7:737fb0c3dbef 339 }
ozy 10:e83899f11e8a 340 /*
ozy 9:8c840b08a633 341 if (buttonD.read() == 1) { // code for fighter to jump while running
ozy 9:8c840b08a633 342 add_y(-13); // temporarily increase y coordinates
ozy 9:8c840b08a633 343 add_x(-10); // decrement by 10
ozy 9:8c840b08a633 344 move_left(lcd);
ozy 9:8c840b08a633 345 wait(0.15);
ozy 9:8c840b08a633 346 lcd.refresh();
ozy 9:8c840b08a633 347 add_y(13); // return back to ground
ozy 9:8c840b08a633 348 draw(lcd);
ozy 9:8c840b08a633 349 wait(0.15);
ozy 9:8c840b08a633 350 lcd.refresh();
ozy 9:8c840b08a633 351 }
ozy 10:e83899f11e8a 352 */
ozy 7:737fb0c3dbef 353 }
ozy 10:e83899f11e8a 354 // lcd.refresh();
ozy 10:e83899f11e8a 355 // wait(0.2);
ozy 7:737fb0c3dbef 356 }