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.
Dependencies: mbed N5110 ShiftReg Joystick
Fighter.cpp@9:8c840b08a633, 2021-04-23 (annotated)
- Committer:
- ozy
- Date:
- Fri Apr 23 22:20:24 2021 +0000
- Revision:
- 9:8c840b08a633
- Parent:
- 8:e2e2eb4ea0ca
- Child:
- 10:e83899f11e8a
Code before removing wait functions
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 | 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 | 7:737fb0c3dbef | 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 | lcd.drawSprite(_x,_y,12,10,(int *)run_left); |
| ozy | 7:737fb0c3dbef | 76 | } |
| ozy | 7:737fb0c3dbef | 77 | |
| ozy | 7:737fb0c3dbef | 78 | // ************************************************************************ |
| ozy | 7:737fb0c3dbef | 79 | |
| ozy | 7:737fb0c3dbef | 80 | void Fighter::move_left2(N5110 &lcd){ |
| ozy | 7:737fb0c3dbef | 81 | const int midrun_left[12][10] = { |
| ozy | 0:99b49fd71085 | 82 | { 0,0,1,1,1,0,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 83 | { 0,0,1,1,1,0,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 84 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 85 | { 0,0,1,0,1,1,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 86 | { 1,1,1,0,1,1,0,1,1,0 }, |
| ozy | 0:99b49fd71085 | 87 | { 0,0,0,0,1,1,0,0,0,1 }, |
| ozy | 0:99b49fd71085 | 88 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 89 | { 0,0,1,1,0,0,1,1,0,0 }, |
| ozy | 1:3bdadf6f6dbd | 90 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 1:3bdadf6f6dbd | 91 | { 0,0,0,0,1,1,0,0,0,0 }, |
| ozy | 1:3bdadf6f6dbd | 92 | { 0,0,0,0,1,0,1,0,0,0 }, |
| ozy | 1:3bdadf6f6dbd | 93 | { 0,0,0,1,0,0,0,1,0,0 }, |
| ozy | 0:99b49fd71085 | 94 | }; |
| ozy | 7:737fb0c3dbef | 95 | lcd.drawSprite(_x,_y,12,10,(int *)midrun_left); |
| ozy | 7:737fb0c3dbef | 96 | } |
| ozy | 7:737fb0c3dbef | 97 | |
| ozy | 7:737fb0c3dbef | 98 | // ************************************************************************ |
| ozy | 7:737fb0c3dbef | 99 | |
| ozy | 7:737fb0c3dbef | 100 | void Fighter::move_right(N5110 &lcd) { |
| ozy | 7:737fb0c3dbef | 101 | |
| ozy | 0:99b49fd71085 | 102 | const int run_right[12][10] = { |
| ozy | 0:99b49fd71085 | 103 | { 0,0,0,0,0,1,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 104 | { 0,0,0,0,0,1,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 105 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 106 | { 0,0,1,1,1,1,0,1,0,0 }, |
| ozy | 0:99b49fd71085 | 107 | { 0,1,1,0,1,1,0,1,1,1 }, |
| ozy | 0:99b49fd71085 | 108 | { 1,0,0,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 109 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 110 | { 0,0,1,1,0,0,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 111 | { 1,1,1,1,0,0,0,1,1,0 }, |
| ozy | 0:99b49fd71085 | 112 | { 0,0,0,0,0,0,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 113 | { 0,0,0,0,0,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 114 | { 0,0,0,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 115 | }; |
| ozy | 7:737fb0c3dbef | 116 | lcd.drawSprite(_x,_y,12,10,(int *)run_right); |
| ozy | 7:737fb0c3dbef | 117 | } |
| ozy | 0:99b49fd71085 | 118 | |
| ozy | 7:737fb0c3dbef | 119 | // ************************************************************************ |
| ozy | 7:737fb0c3dbef | 120 | |
| ozy | 7:737fb0c3dbef | 121 | void Fighter::move_right2(N5110 &lcd) { |
| ozy | 7:737fb0c3dbef | 122 | const int midrun_right[12][10] = { |
| ozy | 0:99b49fd71085 | 123 | { 0,0,0,0,0,1,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 124 | { 0,0,0,0,0,1,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 125 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 126 | { 0,0,1,1,1,1,0,1,0,0 }, |
| ozy | 0:99b49fd71085 | 127 | { 0,1,1,0,1,1,0,1,1,1 }, |
| ozy | 0:99b49fd71085 | 128 | { 1,0,0,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 129 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 130 | { 0,0,1,1,0,0,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 131 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 132 | { 0,0,0,0,1,1,0,0,0,0 }, |
| ozy | 1:3bdadf6f6dbd | 133 | { 0,0,0,1,0,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 134 | { 0,0,1,0,0,0,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 135 | }; |
| ozy | 7:737fb0c3dbef | 136 | |
| ozy | 7:737fb0c3dbef | 137 | lcd.drawSprite(_x,_y,12,10,(int *)midrun_right); |
| ozy | 7:737fb0c3dbef | 138 | } |
| ozy | 7:737fb0c3dbef | 139 | |
| ozy | 7:737fb0c3dbef | 140 | // ************************************************************************ |
| ozy | 7:737fb0c3dbef | 141 | |
| ozy | 7:737fb0c3dbef | 142 | void Fighter::kick_right(N5110 &lcd) { |
| ozy | 7:737fb0c3dbef | 143 | const int kick[12][10] = { |
| ozy | 0:99b49fd71085 | 144 | { 0,1,1,0,0,0,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 145 | { 0,1,1,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 146 | { 0,0,0,1,1,1,1,0,0,1 }, |
| ozy | 0:99b49fd71085 | 147 | { 0,0,1,1,1,0,0,0,1,1 }, |
| ozy | 0:99b49fd71085 | 148 | { 0,1,1,1,1,1,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 149 | { 0,1,0,0,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 150 | { 1,1,0,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 151 | { 0,0,0,0,1,0,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 152 | { 0,0,0,1,1,0,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 153 | { 0,0,0,1,0,0,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 154 | { 0,0,1,1,0,0,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 155 | { 0,0,1,1,0,0,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 156 | }; |
| ozy | 7:737fb0c3dbef | 157 | lcd.drawSprite(_x,_y,12,10,(int *)kick); |
| ozy | 7:737fb0c3dbef | 158 | } |
| ozy | 7:737fb0c3dbef | 159 | |
| ozy | 7:737fb0c3dbef | 160 | // ************************************************************************ |
| ozy | 7:737fb0c3dbef | 161 | |
| ozy | 7:737fb0c3dbef | 162 | void Fighter::kick_left(N5110 &lcd) { |
| ozy | 7:737fb0c3dbef | 163 | const int kick[12][10] = { |
| ozy | 0:99b49fd71085 | 164 | { 0,0,0,0,0,0,0,1,1,0 }, |
| ozy | 0:99b49fd71085 | 165 | { 0,0,0,0,1,1,0,1,1,0 }, |
| ozy | 0:99b49fd71085 | 166 | { 1,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 167 | { 1,1,0,0,0,1,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 168 | { 0,0,1,1,1,1,1,1,1,0 }, |
| ozy | 0:99b49fd71085 | 169 | { 0,0,0,1,1,1,0,0,1,0 }, |
| ozy | 0:99b49fd71085 | 170 | { 0,0,0,0,1,1,0,0,1,1 }, |
| ozy | 0:99b49fd71085 | 171 | { 0,0,0,0,0,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 172 | { 0,0,0,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 173 | { 0,0,0,0,1,0,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,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 176 | }; |
| ozy | 7:737fb0c3dbef | 177 | lcd.drawSprite(_x,_y,12,10,(int *)kick); |
| ozy | 7:737fb0c3dbef | 178 | } |
| ozy | 7:737fb0c3dbef | 179 | |
| ozy | 7:737fb0c3dbef | 180 | // ************************************************************************ |
| ozy | 7:737fb0c3dbef | 181 | |
| ozy | 7:737fb0c3dbef | 182 | void Fighter::punch_right(N5110 &lcd) { |
| ozy | 7:737fb0c3dbef | 183 | const int punch[12][10] = { |
| ozy | 0:99b49fd71085 | 184 | { 0,0,0,0,1,1,0,0,0,1 }, |
| ozy | 0:99b49fd71085 | 185 | { 0,0,0,0,1,1,0,0,1,1 }, |
| ozy | 0:99b49fd71085 | 186 | { 0,0,1,1,1,1,0,1,1,0 }, |
| ozy | 0:99b49fd71085 | 187 | { 0,1,0,0,1,1,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 188 | { 0,1,1,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 189 | { 0,0,0,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 190 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 191 | { 0,0,0,1,0,0,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 192 | { 0,0,1,1,0,0,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 193 | { 0,0,1,0,0,0,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 194 | { 0,1,1,0,0,0,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 195 | { 1,1,0,0,0,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 196 | }; |
| ozy | 7:737fb0c3dbef | 197 | lcd.drawSprite(_x,_y,12,10,(int *)punch); |
| ozy | 7:737fb0c3dbef | 198 | } |
| ozy | 7:737fb0c3dbef | 199 | |
| ozy | 7:737fb0c3dbef | 200 | // ************************************************************************ |
| ozy | 7:737fb0c3dbef | 201 | |
| ozy | 7:737fb0c3dbef | 202 | void Fighter::punch_left(N5110 &lcd) { |
| ozy | 7:737fb0c3dbef | 203 | const int punch[12][10] = { |
| ozy | 0:99b49fd71085 | 204 | { 1,0,0,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 205 | { 1,1,0,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 206 | { 0,1,1,0,1,1,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 207 | { 0,0,1,1,1,1,0,0,1,0 }, |
| ozy | 0:99b49fd71085 | 208 | { 0,0,0,0,1,1,0,1,1,0 }, |
| ozy | 0:99b49fd71085 | 209 | { 0,0,0,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 210 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 211 | { 0,0,1,1,0,0,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 212 | { 0,0,1,1,0,0,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 213 | { 0,0,0,1,0,0,0,1,0,0 }, |
| ozy | 0:99b49fd71085 | 214 | { 0,0,0,1,0,0,0,1,1,0 }, |
| ozy | 0:99b49fd71085 | 215 | { 0,0,0,1,1,0,0,0,1,1 }, |
| ozy | 0:99b49fd71085 | 216 | }; |
| ozy | 7:737fb0c3dbef | 217 | lcd.drawSprite(_x,_y,12,10,(int *)punch); |
| ozy | 7:737fb0c3dbef | 218 | } |
| ozy | 7:737fb0c3dbef | 219 | |
| ozy | 7:737fb0c3dbef | 220 | // ************************************************************************ |
| ozy | 7:737fb0c3dbef | 221 | |
| ozy | 7:737fb0c3dbef | 222 | void Fighter::guard(N5110 &lcd) { |
| ozy | 0:99b49fd71085 | 223 | const int guard[12][10] = { |
| ozy | 0:99b49fd71085 | 224 | { 0,0,0,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 225 | { 0,0,0,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 226 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 227 | { 0,0,1,0,1,1,0,1,0,0 }, |
| ozy | 0:99b49fd71085 | 228 | { 0,0,1,0,1,1,0,1,0,0 }, |
| ozy | 0:99b49fd71085 | 229 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 230 | { 0,0,0,0,1,1,0,0,0,0 }, |
| ozy | 0:99b49fd71085 | 231 | { 0,0,0,1,1,1,1,0,0,0 }, |
| ozy | 0:99b49fd71085 | 232 | { 0,0,1,1,1,1,1,1,0,0 }, |
| ozy | 0:99b49fd71085 | 233 | { 0,1,0,0,0,0,0,0,1,0 }, |
| ozy | 0:99b49fd71085 | 234 | { 0,1,0,0,0,0,0,0,1,0 }, |
| ozy | 0:99b49fd71085 | 235 | { 0,1,0,0,0,0,0,0,1,0 }, |
| ozy | 0:99b49fd71085 | 236 | }; |
| ozy | 7:737fb0c3dbef | 237 | lcd.drawSprite(_x,_y,12,10,(int *)guard); |
| ozy | 7:737fb0c3dbef | 238 | } |
| ozy | 6:a1a7dc264fed | 239 | |
| ozy | 7:737fb0c3dbef | 240 | void Fighter::move_fighter(N5110 &lcd, DigitalIn &buttonA, DigitalIn &buttonB, DigitalIn &buttonC, DigitalIn &buttonD, AnalogIn &joy_v, AnalogIn &joy_h) { |
| ozy | 6:a1a7dc264fed | 241 | // getting joystick coordinates using read() function |
| ozy | 6:a1a7dc264fed | 242 | // 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 | 243 | // read each of the pins |
| ozy | 7:737fb0c3dbef | 244 | float x = joy_h.read(); |
| ozy | 7:737fb0c3dbef | 245 | float y = joy_v.read(); |
| ozy | 8:e2e2eb4ea0ca | 246 | // printf("x = %.2f | y = %.2f \n",x,y); |
| ozy | 7:737fb0c3dbef | 247 | |
| ozy | 7:737fb0c3dbef | 248 | int x_pos = get_x(); |
| ozy | 8:e2e2eb4ea0ca | 249 | // printf("fighter x pos = %i \n", x_pos); |
| ozy | 7:737fb0c3dbef | 250 | |
| ozy | 6:a1a7dc264fed | 251 | /* |
| ozy | 6:a1a7dc264fed | 252 | Code idea: |
| ozy | 6:a1a7dc264fed | 253 | if joystick is not moved , display standing sprite |
| ozy | 6:a1a7dc264fed | 254 | if joystick is moved right, toggle between runright and midrunright |
| ozy | 6:a1a7dc264fed | 255 | if joystick is moved left, toggle between runleft and midrunleft |
| ozy | 6:a1a7dc264fed | 256 | */ |
| ozy | 7:737fb0c3dbef | 257 | 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 | 258 | draw(lcd); // draw standing fighter |
| ozy | 6:a1a7dc264fed | 259 | lcd.refresh(); |
| ozy | 6:a1a7dc264fed | 260 | wait(0.3); |
| ozy | 6:a1a7dc264fed | 261 | |
| ozy | 6:a1a7dc264fed | 262 | // Preform kick move if user presses button A |
| ozy | 6:a1a7dc264fed | 263 | if (buttonA.read() == 1) { |
| ozy | 7:737fb0c3dbef | 264 | kick_right(lcd); // draw kick on same coordinates as the standing sprite |
| ozy | 6:a1a7dc264fed | 265 | lcd.refresh(); |
| ozy | 6:a1a7dc264fed | 266 | wait(0.3); |
| ozy | 6:a1a7dc264fed | 267 | } |
| ozy | 6:a1a7dc264fed | 268 | // Preform punch move if user presses button B |
| ozy | 6:a1a7dc264fed | 269 | if (buttonB.read() == 1) { |
| ozy | 7:737fb0c3dbef | 270 | punch_right(lcd); // draw kick |
| ozy | 6:a1a7dc264fed | 271 | lcd.refresh(); |
| ozy | 6:a1a7dc264fed | 272 | wait(0.3); |
| ozy | 6:a1a7dc264fed | 273 | } |
| ozy | 6:a1a7dc264fed | 274 | // Guard if user presses button C |
| ozy | 8:e2e2eb4ea0ca | 275 | if (buttonC.read() == 1) { |
| ozy | 7:737fb0c3dbef | 276 | guard(lcd); // draw guard move frame |
| ozy | 8:e2e2eb4ea0ca | 277 | wait(0.5); |
| ozy | 6:a1a7dc264fed | 278 | lcd.refresh(); |
| ozy | 6:a1a7dc264fed | 279 | wait(0.3); |
| ozy | 6:a1a7dc264fed | 280 | } |
| ozy | 7:737fb0c3dbef | 281 | } |
| ozy | 7:737fb0c3dbef | 282 | else if(x < 0.48) { // joystick moved to the right |
| ozy | 6:a1a7dc264fed | 283 | // print the move_right animation, refresh, then print the 2nd move_right animation (toggling animations to create moving legs!) |
| ozy | 7:737fb0c3dbef | 284 | add_x(5); // increment by 5 |
| ozy | 7:737fb0c3dbef | 285 | move_right(lcd); |
| ozy | 6:a1a7dc264fed | 286 | lcd.refresh(); |
| ozy | 6:a1a7dc264fed | 287 | wait(0.1); |
| ozy | 7:737fb0c3dbef | 288 | move_right2(lcd); |
| ozy | 6:a1a7dc264fed | 289 | lcd.refresh(); |
| ozy | 6:a1a7dc264fed | 290 | wait(0.08); |
| ozy | 7:737fb0c3dbef | 291 | |
| ozy | 7:737fb0c3dbef | 292 | if (x_pos >= 65) { // code to stop fighter moving out of lcd screen |
| ozy | 7:737fb0c3dbef | 293 | add_x(-5); |
| ozy | 6:a1a7dc264fed | 294 | } |
| ozy | 7:737fb0c3dbef | 295 | |
| ozy | 7:737fb0c3dbef | 296 | |
| ozy | 6:a1a7dc264fed | 297 | // kick if user presses button A |
| ozy | 6:a1a7dc264fed | 298 | if (buttonA.read() == 1) { |
| ozy | 7:737fb0c3dbef | 299 | kick_right(lcd); |
| ozy | 6:a1a7dc264fed | 300 | lcd.refresh(); |
| ozy | 6:a1a7dc264fed | 301 | wait(0.3); |
| ozy | 7:737fb0c3dbef | 302 | } |
| ozy | 6:a1a7dc264fed | 303 | // Preform punch move if user presses button B |
| ozy | 6:a1a7dc264fed | 304 | if (buttonB.read() == 1) { |
| ozy | 7:737fb0c3dbef | 305 | punch_right(lcd); // draw kick on same coordinates as the sprite |
| ozy | 6:a1a7dc264fed | 306 | lcd.refresh(); |
| ozy | 6:a1a7dc264fed | 307 | wait(0.3); |
| ozy | 6:a1a7dc264fed | 308 | } |
| ozy | 6:a1a7dc264fed | 309 | // Guard if user presses button C |
| ozy | 8:e2e2eb4ea0ca | 310 | if (buttonC.read() == 1) { // we use while not if here because user would hold to guard |
| ozy | 7:737fb0c3dbef | 311 | guard(lcd); // draw kick on same coordinates as the sprite |
| ozy | 8:e2e2eb4ea0ca | 312 | wait(0.5); |
| ozy | 6:a1a7dc264fed | 313 | lcd.refresh(); |
| ozy | 6:a1a7dc264fed | 314 | wait(0.3); |
| ozy | 6:a1a7dc264fed | 315 | } |
| ozy | 9:8c840b08a633 | 316 | if (buttonD.read() == 1) { // code for fighter to jump while running |
| ozy | 9:8c840b08a633 | 317 | add_y(-13); // temporarily increase y coordinates |
| ozy | 9:8c840b08a633 | 318 | add_x(10); // increment by 10 |
| ozy | 9:8c840b08a633 | 319 | move_right(lcd); |
| ozy | 9:8c840b08a633 | 320 | wait(0.15); |
| ozy | 9:8c840b08a633 | 321 | lcd.refresh(); |
| ozy | 9:8c840b08a633 | 322 | add_y(13); // return back to ground |
| ozy | 9:8c840b08a633 | 323 | draw(lcd); |
| ozy | 9:8c840b08a633 | 324 | wait(0.15); |
| ozy | 9:8c840b08a633 | 325 | lcd.refresh(); |
| ozy | 9:8c840b08a633 | 326 | } |
| ozy | 6:a1a7dc264fed | 327 | } |
| ozy | 6:a1a7dc264fed | 328 | |
| ozy | 7:737fb0c3dbef | 329 | else if(x > 0.52) { // joystick moved to the left |
| ozy | 7:737fb0c3dbef | 330 | add_x(-5); // decrement left by 5 |
| ozy | 7:737fb0c3dbef | 331 | move_left(lcd); |
| ozy | 7:737fb0c3dbef | 332 | lcd.refresh(); |
| ozy | 7:737fb0c3dbef | 333 | wait(0.1); |
| ozy | 7:737fb0c3dbef | 334 | move_left2(lcd); |
| ozy | 7:737fb0c3dbef | 335 | lcd.refresh(); |
| ozy | 7:737fb0c3dbef | 336 | wait(0.08); |
| ozy | 0:99b49fd71085 | 337 | |
| ozy | 7:737fb0c3dbef | 338 | if (x_pos <= 6) { // code to stop fighter moving out of lcd screen |
| ozy | 7:737fb0c3dbef | 339 | add_x(5); |
| ozy | 7:737fb0c3dbef | 340 | } |
| ozy | 0:99b49fd71085 | 341 | |
| ozy | 7:737fb0c3dbef | 342 | // kick if user presses button A |
| ozy | 7:737fb0c3dbef | 343 | if (buttonA.read() == 1) { |
| ozy | 7:737fb0c3dbef | 344 | kick_left(lcd); |
| ozy | 7:737fb0c3dbef | 345 | lcd.refresh(); |
| ozy | 7:737fb0c3dbef | 346 | wait(0.3); |
| ozy | 7:737fb0c3dbef | 347 | } |
| ozy | 7:737fb0c3dbef | 348 | if (buttonB.read() == 1) { |
| ozy | 7:737fb0c3dbef | 349 | punch_left(lcd); // draw punch on same coordinates as the sprite |
| ozy | 7:737fb0c3dbef | 350 | lcd.refresh(); |
| ozy | 7:737fb0c3dbef | 351 | wait(0.3); |
| ozy | 7:737fb0c3dbef | 352 | } |
| ozy | 7:737fb0c3dbef | 353 | // Guard if user presses button C |
| ozy | 8:e2e2eb4ea0ca | 354 | if (buttonC.read() == 1) { |
| ozy | 8:e2e2eb4ea0ca | 355 | guard(lcd); |
| ozy | 8:e2e2eb4ea0ca | 356 | wait(0.5); |
| ozy | 7:737fb0c3dbef | 357 | lcd.refresh(); |
| ozy | 7:737fb0c3dbef | 358 | wait(0.3); |
| ozy | 7:737fb0c3dbef | 359 | } |
| ozy | 9:8c840b08a633 | 360 | if (buttonD.read() == 1) { // code for fighter to jump while running |
| ozy | 9:8c840b08a633 | 361 | add_y(-13); // temporarily increase y coordinates |
| ozy | 9:8c840b08a633 | 362 | add_x(-10); // decrement by 10 |
| ozy | 9:8c840b08a633 | 363 | move_left(lcd); |
| ozy | 9:8c840b08a633 | 364 | wait(0.15); |
| ozy | 9:8c840b08a633 | 365 | lcd.refresh(); |
| ozy | 9:8c840b08a633 | 366 | add_y(13); // return back to ground |
| ozy | 9:8c840b08a633 | 367 | draw(lcd); |
| ozy | 9:8c840b08a633 | 368 | wait(0.15); |
| ozy | 9:8c840b08a633 | 369 | lcd.refresh(); |
| ozy | 9:8c840b08a633 | 370 | } |
| ozy | 7:737fb0c3dbef | 371 | } |
| ozy | 7:737fb0c3dbef | 372 | } |