Mortal Kombat Game ELEC2645
Dependencies: mbed N5110 ShiftReg Joystick
Fighter.cpp@6:a1a7dc264fed, 2021-04-21 (annotated)
- Committer:
- ozy
- Date:
- Wed Apr 21 22:56:55 2021 +0000
- Revision:
- 6:a1a7dc264fed
- Parent:
- 3:1d99b6ad4f9e
- Child:
- 7:737fb0c3dbef
Code before FighterClass change to GameEngine
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ozy | 0:99b49fd71085 | 1 | #include "Fighter.h" |
ozy | 0:99b49fd71085 | 2 | #include "mbed.h" |
ozy | 0:99b49fd71085 | 3 | |
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 | 3:1d99b6ad4f9e | 15 | void Fighter::set_x(int x) { |
ozy | 3:1d99b6ad4f9e | 16 | _x = x; |
ozy | 3:1d99b6ad4f9e | 17 | } |
ozy | 3:1d99b6ad4f9e | 18 | |
ozy | 3:1d99b6ad4f9e | 19 | void Fighter::set_y(int y) { |
ozy | 3:1d99b6ad4f9e | 20 | _y = y; |
ozy | 3:1d99b6ad4f9e | 21 | } |
ozy | 3:1d99b6ad4f9e | 22 | |
ozy | 6:a1a7dc264fed | 23 | int Fighter::add_x(int x) { |
ozy | 3:1d99b6ad4f9e | 24 | _x += x; |
ozy | 6:a1a7dc264fed | 25 | return _x; |
ozy | 3:1d99b6ad4f9e | 26 | } |
ozy | 3:1d99b6ad4f9e | 27 | |
ozy | 6:a1a7dc264fed | 28 | int Fighter::add_y(int y) { |
ozy | 3:1d99b6ad4f9e | 29 | _y += y; |
ozy | 6:a1a7dc264fed | 30 | return _y; |
ozy | 3:1d99b6ad4f9e | 31 | } |
ozy | 3:1d99b6ad4f9e | 32 | |
ozy | 6:a1a7dc264fed | 33 | // function to move and draw my fighter |
ozy | 6:a1a7dc264fed | 34 | void Fighter::draw(N5110 &lcd, DigitalIn &buttonA, DigitalIn &buttonB, DigitalIn &buttonC, DigitalIn &buttonD, AnalogIn &joy_v, AnalogIn &joy_h) { |
ozy | 0:99b49fd71085 | 35 | |
ozy | 6:a1a7dc264fed | 36 | // first draw out all the frames of the fighter |
ozy | 0:99b49fd71085 | 37 | const int standsprite[12][10] = { |
ozy | 0:99b49fd71085 | 38 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 39 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 40 | { 0,0,1,1,1,1,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 41 | { 0,0,1,0,1,1,0,1,0,0 }, |
ozy | 0:99b49fd71085 | 42 | { 0,1,1,0,1,1,0,1,1,0 }, |
ozy | 0:99b49fd71085 | 43 | { 0,1,0,0,1,1,0,0,1,0 }, |
ozy | 0:99b49fd71085 | 44 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 45 | { 0,0,1,1,0,0,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 46 | { 0,0,1,0,0,0,0,1,0,0 }, |
ozy | 0:99b49fd71085 | 47 | { 0,1,1,0,0,0,0,1,1,0 }, |
ozy | 0:99b49fd71085 | 48 | { 0,1,0,0,0,0,0,0,1,0 }, |
ozy | 0:99b49fd71085 | 49 | { 0,1,0,0,0,0,0,0,1,0 }, |
ozy | 0:99b49fd71085 | 50 | }; |
ozy | 6:a1a7dc264fed | 51 | |
ozy | 0:99b49fd71085 | 52 | const int run_left[12][10] = { |
ozy | 0:99b49fd71085 | 53 | { 0,0,1,1,1,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 54 | { 0,0,1,1,1,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 55 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 56 | { 0,0,1,0,1,1,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 57 | { 1,1,1,0,1,1,0,1,1,0 }, |
ozy | 0:99b49fd71085 | 58 | { 0,0,0,0,1,1,0,0,0,1 }, |
ozy | 0:99b49fd71085 | 59 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 60 | { 0,0,1,1,0,0,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 61 | { 0,1,1,0,0,0,1,1,1,1 }, |
ozy | 0:99b49fd71085 | 62 | { 0,0,1,1,0,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 63 | { 0,0,0,1,1,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 64 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 65 | }; |
ozy | 6:a1a7dc264fed | 66 | |
ozy | 6:a1a7dc264fed | 67 | const int midrun_left[12][10] = { |
ozy | 0:99b49fd71085 | 68 | { 0,0,1,1,1,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 69 | { 0,0,1,1,1,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 70 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 71 | { 0,0,1,0,1,1,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 72 | { 1,1,1,0,1,1,0,1,1,0 }, |
ozy | 0:99b49fd71085 | 73 | { 0,0,0,0,1,1,0,0,0,1 }, |
ozy | 0:99b49fd71085 | 74 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 75 | { 0,0,1,1,0,0,1,1,0,0 }, |
ozy | 1:3bdadf6f6dbd | 76 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 1:3bdadf6f6dbd | 77 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 1:3bdadf6f6dbd | 78 | { 0,0,0,0,1,0,1,0,0,0 }, |
ozy | 1:3bdadf6f6dbd | 79 | { 0,0,0,1,0,0,0,1,0,0 }, |
ozy | 0:99b49fd71085 | 80 | }; |
ozy | 6:a1a7dc264fed | 81 | |
ozy | 0:99b49fd71085 | 82 | const int run_right[12][10] = { |
ozy | 0:99b49fd71085 | 83 | { 0,0,0,0,0,1,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 84 | { 0,0,0,0,0,1,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 85 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 86 | { 0,0,1,1,1,1,0,1,0,0 }, |
ozy | 0:99b49fd71085 | 87 | { 0,1,1,0,1,1,0,1,1,1 }, |
ozy | 0:99b49fd71085 | 88 | { 1,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 89 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 90 | { 0,0,1,1,0,0,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 91 | { 1,1,1,1,0,0,0,1,1,0 }, |
ozy | 0:99b49fd71085 | 92 | { 0,0,0,0,0,0,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 93 | { 0,0,0,0,0,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 94 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 95 | }; |
ozy | 0:99b49fd71085 | 96 | |
ozy | 6:a1a7dc264fed | 97 | const int midrun_right[12][10] = { |
ozy | 0:99b49fd71085 | 98 | { 0,0,0,0,0,1,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 99 | { 0,0,0,0,0,1,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 100 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 101 | { 0,0,1,1,1,1,0,1,0,0 }, |
ozy | 0:99b49fd71085 | 102 | { 0,1,1,0,1,1,0,1,1,1 }, |
ozy | 0:99b49fd71085 | 103 | { 1,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 104 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 105 | { 0,0,1,1,0,0,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 106 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 107 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 1:3bdadf6f6dbd | 108 | { 0,0,0,1,0,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 109 | { 0,0,1,0,0,0,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 110 | }; |
ozy | 1:3bdadf6f6dbd | 111 | |
ozy | 6:a1a7dc264fed | 112 | const int kick_right[12][10] = { |
ozy | 0:99b49fd71085 | 113 | { 0,1,1,0,0,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 114 | { 0,1,1,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 115 | { 0,0,0,1,1,1,1,0,0,1 }, |
ozy | 0:99b49fd71085 | 116 | { 0,0,1,1,1,0,0,0,1,1 }, |
ozy | 0:99b49fd71085 | 117 | { 0,1,1,1,1,1,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 118 | { 0,1,0,0,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 119 | { 1,1,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 120 | { 0,0,0,0,1,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 121 | { 0,0,0,1,1,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 122 | { 0,0,0,1,0,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 123 | { 0,0,1,1,0,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 124 | { 0,0,1,1,0,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 125 | }; |
ozy | 6:a1a7dc264fed | 126 | |
ozy | 6:a1a7dc264fed | 127 | const int kick_left[12][10] = { |
ozy | 0:99b49fd71085 | 128 | { 0,0,0,0,0,0,0,1,1,0 }, |
ozy | 0:99b49fd71085 | 129 | { 0,0,0,0,1,1,0,1,1,0 }, |
ozy | 0:99b49fd71085 | 130 | { 1,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 131 | { 1,1,0,0,0,1,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 132 | { 0,0,1,1,1,1,1,1,1,0 }, |
ozy | 0:99b49fd71085 | 133 | { 0,0,0,1,1,1,0,0,1,0 }, |
ozy | 0:99b49fd71085 | 134 | { 0,0,0,0,1,1,0,0,1,1 }, |
ozy | 0:99b49fd71085 | 135 | { 0,0,0,0,0,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 136 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 137 | { 0,0,0,0,1,0,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 138 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 139 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 140 | }; |
ozy | 6:a1a7dc264fed | 141 | |
ozy | 6:a1a7dc264fed | 142 | const int punch_right[12][10] = { |
ozy | 0:99b49fd71085 | 143 | { 0,0,0,0,1,1,0,0,0,1 }, |
ozy | 0:99b49fd71085 | 144 | { 0,0,0,0,1,1,0,0,1,1 }, |
ozy | 0:99b49fd71085 | 145 | { 0,0,1,1,1,1,0,1,1,0 }, |
ozy | 0:99b49fd71085 | 146 | { 0,1,0,0,1,1,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 147 | { 0,1,1,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 148 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 149 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 150 | { 0,0,0,1,0,0,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 151 | { 0,0,1,1,0,0,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 152 | { 0,0,1,0,0,0,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 153 | { 0,1,1,0,0,0,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 154 | { 1,1,0,0,0,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 155 | }; |
ozy | 6:a1a7dc264fed | 156 | |
ozy | 6:a1a7dc264fed | 157 | const int punch_left[12][10] = { |
ozy | 0:99b49fd71085 | 158 | { 1,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 159 | { 1,1,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 160 | { 0,1,1,0,1,1,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 161 | { 0,0,1,1,1,1,0,0,1,0 }, |
ozy | 0:99b49fd71085 | 162 | { 0,0,0,0,1,1,0,1,1,0 }, |
ozy | 0:99b49fd71085 | 163 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 164 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 165 | { 0,0,1,1,0,0,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 166 | { 0,0,1,1,0,0,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 167 | { 0,0,0,1,0,0,0,1,0,0 }, |
ozy | 0:99b49fd71085 | 168 | { 0,0,0,1,0,0,0,1,1,0 }, |
ozy | 0:99b49fd71085 | 169 | { 0,0,0,1,1,0,0,0,1,1 }, |
ozy | 0:99b49fd71085 | 170 | }; |
ozy | 6:a1a7dc264fed | 171 | |
ozy | 0:99b49fd71085 | 172 | const int guard[12][10] = { |
ozy | 0:99b49fd71085 | 173 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 174 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 175 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 176 | { 0,0,1,0,1,1,0,1,0,0 }, |
ozy | 0:99b49fd71085 | 177 | { 0,0,1,0,1,1,0,1,0,0 }, |
ozy | 0:99b49fd71085 | 178 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 179 | { 0,0,0,0,1,1,0,0,0,0 }, |
ozy | 0:99b49fd71085 | 180 | { 0,0,0,1,1,1,1,0,0,0 }, |
ozy | 0:99b49fd71085 | 181 | { 0,0,1,1,1,1,1,1,0,0 }, |
ozy | 0:99b49fd71085 | 182 | { 0,1,0,0,0,0,0,0,1,0 }, |
ozy | 0:99b49fd71085 | 183 | { 0,1,0,0,0,0,0,0,1,0 }, |
ozy | 0:99b49fd71085 | 184 | { 0,1,0,0,0,0,0,0,1,0 }, |
ozy | 0:99b49fd71085 | 185 | }; |
ozy | 6:a1a7dc264fed | 186 | |
ozy | 6:a1a7dc264fed | 187 | |
ozy | 6:a1a7dc264fed | 188 | // getting joystick coordinates using read() function |
ozy | 6:a1a7dc264fed | 189 | // 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 | 190 | // read each of the pins |
ozy | 6:a1a7dc264fed | 191 | float _x = joy_h.read(); |
ozy | 6:a1a7dc264fed | 192 | float _y = joy_v.read(); |
ozy | 6:a1a7dc264fed | 193 | // printf("x = %.2f | y = %.2f \n",x,y); |
ozy | 6:a1a7dc264fed | 194 | |
ozy | 6:a1a7dc264fed | 195 | // get x and y coordinates of fighter |
ozy | 6:a1a7dc264fed | 196 | int x_coord = get_x(); |
ozy | 6:a1a7dc264fed | 197 | int y_coord = get_y(); |
ozy | 6:a1a7dc264fed | 198 | printf("x = %i, y = %i \n", x_coord, y_coord); |
ozy | 6:a1a7dc264fed | 199 | |
ozy | 6:a1a7dc264fed | 200 | /* |
ozy | 6:a1a7dc264fed | 201 | Code idea: |
ozy | 6:a1a7dc264fed | 202 | if joystick is not moved , display standing sprite |
ozy | 6:a1a7dc264fed | 203 | if joystick is moved right, toggle between runright and midrunright |
ozy | 6:a1a7dc264fed | 204 | if joystick is moved left, toggle between runleft and midrunleft |
ozy | 6:a1a7dc264fed | 205 | */ |
ozy | 6:a1a7dc264fed | 206 | |
ozy | 6:a1a7dc264fed | 207 | 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 | 6:a1a7dc264fed | 208 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)standsprite);; // draw standing fighter |
ozy | 6:a1a7dc264fed | 209 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 210 | wait(0.3); |
ozy | 6:a1a7dc264fed | 211 | |
ozy | 6:a1a7dc264fed | 212 | // Preform kick move if user presses button A |
ozy | 6:a1a7dc264fed | 213 | if (buttonA.read() == 1) { |
ozy | 6:a1a7dc264fed | 214 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)kick_right); // draw kick on same coordinates as the standing sprite |
ozy | 6:a1a7dc264fed | 215 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 216 | wait(0.3); |
ozy | 6:a1a7dc264fed | 217 | } |
ozy | 6:a1a7dc264fed | 218 | // Preform punch move if user presses button B |
ozy | 6:a1a7dc264fed | 219 | if (buttonB.read() == 1) { |
ozy | 6:a1a7dc264fed | 220 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)punch_right); // draw kick |
ozy | 6:a1a7dc264fed | 221 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 222 | wait(0.3); |
ozy | 6:a1a7dc264fed | 223 | } |
ozy | 6:a1a7dc264fed | 224 | // Guard if user presses button C |
ozy | 6:a1a7dc264fed | 225 | while (buttonC.read() == 1) { |
ozy | 6:a1a7dc264fed | 226 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)guard); // draw guard move frame |
ozy | 6:a1a7dc264fed | 227 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 228 | wait(0.3); |
ozy | 6:a1a7dc264fed | 229 | } |
ozy | 6:a1a7dc264fed | 230 | } |
ozy | 6:a1a7dc264fed | 231 | else if(_x < 0.48) { // joystick moved to the right |
ozy | 6:a1a7dc264fed | 232 | // print the move_right animation, refresh, then print the 2nd move_right animation (toggling animations to create moving legs!) |
ozy | 6:a1a7dc264fed | 233 | _x = add_x(5); // increment x position by 5 |
ozy | 6:a1a7dc264fed | 234 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)run_right); |
ozy | 6:a1a7dc264fed | 235 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 236 | wait(0.1); |
ozy | 6:a1a7dc264fed | 237 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)midrun_right); |
ozy | 6:a1a7dc264fed | 238 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 239 | wait(0.08); |
ozy | 6:a1a7dc264fed | 240 | |
ozy | 6:a1a7dc264fed | 241 | if (x_coord > 68) { // code to stop fighter moving out of lcd screen |
ozy | 6:a1a7dc264fed | 242 | x_coord = add_x(-5); |
ozy | 6:a1a7dc264fed | 243 | } |
ozy | 6:a1a7dc264fed | 244 | // kick if user presses button A |
ozy | 6:a1a7dc264fed | 245 | if (buttonA.read() == 1) { |
ozy | 6:a1a7dc264fed | 246 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)kick_right); |
ozy | 6:a1a7dc264fed | 247 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 248 | wait(0.3); |
ozy | 6:a1a7dc264fed | 249 | } |
ozy | 6:a1a7dc264fed | 250 | // Preform punch move if user presses button B |
ozy | 6:a1a7dc264fed | 251 | if (buttonB.read() == 1) { |
ozy | 6:a1a7dc264fed | 252 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)punch_right); // draw punch on same coordinates as the sprite |
ozy | 6:a1a7dc264fed | 253 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 254 | wait(0.3); |
ozy | 6:a1a7dc264fed | 255 | } |
ozy | 6:a1a7dc264fed | 256 | // Guard if user presses button C |
ozy | 6:a1a7dc264fed | 257 | while (buttonC.read() == 1) { // we use while not if here because user would hold to guard |
ozy | 6:a1a7dc264fed | 258 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)guard); // draw kick on same coordinates as the sprite |
ozy | 6:a1a7dc264fed | 259 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 260 | wait(0.3); |
ozy | 6:a1a7dc264fed | 261 | } |
ozy | 6:a1a7dc264fed | 262 | } |
ozy | 6:a1a7dc264fed | 263 | else if(_x > 0.52) { // joystick moved to the left |
ozy | 6:a1a7dc264fed | 264 | _x = add_x(-5); // decrement left by 5 |
ozy | 6:a1a7dc264fed | 265 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)run_left); |
ozy | 6:a1a7dc264fed | 266 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 267 | wait(0.1); |
ozy | 6:a1a7dc264fed | 268 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)midrun_left); |
ozy | 6:a1a7dc264fed | 269 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 270 | wait(0.08); |
ozy | 6:a1a7dc264fed | 271 | |
ozy | 6:a1a7dc264fed | 272 | if (x_coord < 3) { // code to stop fighter moving out of lcd screen |
ozy | 6:a1a7dc264fed | 273 | x_coord = add_x(5); |
ozy | 6:a1a7dc264fed | 274 | } |
ozy | 6:a1a7dc264fed | 275 | |
ozy | 6:a1a7dc264fed | 276 | // kick if user presses button A |
ozy | 6:a1a7dc264fed | 277 | if (buttonA.read() == 1) { |
ozy | 6:a1a7dc264fed | 278 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)kick_left); |
ozy | 6:a1a7dc264fed | 279 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 280 | wait(0.3); |
ozy | 6:a1a7dc264fed | 281 | } |
ozy | 6:a1a7dc264fed | 282 | if (buttonB.read() == 1) { |
ozy | 6:a1a7dc264fed | 283 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)punch_left); // draw punch on same coordinates as the sprite |
ozy | 6:a1a7dc264fed | 284 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 285 | wait(0.3); |
ozy | 6:a1a7dc264fed | 286 | } |
ozy | 6:a1a7dc264fed | 287 | // Guard if user presses button C |
ozy | 6:a1a7dc264fed | 288 | if (buttonC.read() == 1) { |
ozy | 6:a1a7dc264fed | 289 | lcd.drawSprite(x_coord,y_coord,12,10,(int *)guard); // draw guard on same coordinates as the sprite |
ozy | 6:a1a7dc264fed | 290 | lcd.refresh(); |
ozy | 6:a1a7dc264fed | 291 | wait(0.3); |
ozy | 6:a1a7dc264fed | 292 | } |
ozy | 6:a1a7dc264fed | 293 | } |
ozy | 6:a1a7dc264fed | 294 | |
ozy | 0:99b49fd71085 | 295 | } |
ozy | 0:99b49fd71085 | 296 | |
ozy | 0:99b49fd71085 | 297 | |
ozy | 0:99b49fd71085 | 298 | |
ozy | 0:99b49fd71085 | 299 | |
ozy | 0:99b49fd71085 | 300 | |
ozy | 0:99b49fd71085 | 301 |