ELEC2645 (2018/19) / Mbed 2 deprecated el17arm

Dependencies:   mbed

Committer:
el17arm
Date:
Wed Apr 24 16:45:47 2019 +0000
Revision:
49:9bea7089b657
Parent:
45:bad704c546d4
Child:
54:7fa8c07fdea4
Sprites documentation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17arm 42:d81c008b0436 1 #include "Levels.h"
el17arm 18:ff0a53dcb862 2
el17arm 42:d81c008b0436 3 Levels::Levels()
el17arm 18:ff0a53dcb862 4 {
el17arm 18:ff0a53dcb862 5 }
el17arm 18:ff0a53dcb862 6
el17arm 42:d81c008b0436 7 Levels::~Levels()
el17arm 18:ff0a53dcb862 8 {
el17arm 18:ff0a53dcb862 9 }
el17arm 45:bad704c546d4 10 /////////////////level 1 objects /////////////////////////
el17arm 18:ff0a53dcb862 11
el17arm 45:bad704c546d4 12 // Generates all standard platforms for level 1
el17arm 42:d81c008b0436 13 void Levels::level_platforms1(N5110 &lcd)
el17arm 18:ff0a53dcb862 14 {
el17arm 20:78bd235f8caa 15 lcd.drawLine(0,47,83,47, 1);
el17arm 26:bce40bf4c9fc 16 lcd.drawRect(11,39, 38, 2, FILL_BLACK);
el17arm 38:55bb9da08a52 17 lcd.drawRect(65,36, 30, 2, FILL_BLACK);
el17arm 42:d81c008b0436 18 lcd.drawRect(75,29, 9, 2, FILL_BLACK);
el17arm 18:ff0a53dcb862 19 lcd.drawRect(22, 25, 48, 2, FILL_BLACK);
el17arm 18:ff0a53dcb862 20 lcd.drawRect(0, 25, 12, 2, FILL_BLACK);
el17arm 18:ff0a53dcb862 21 lcd.drawRect(0, 17, 8, 2, FILL_BLACK);
el17arm 18:ff0a53dcb862 22 lcd.drawRect(0, 9, 27, 2, FILL_BLACK);
el17arm 18:ff0a53dcb862 23 lcd.drawRect(39, 9, 7, 2, FILL_BLACK);
el17arm 41:0cf320f73424 24 lcd.drawRect(53,9,32,2,FILL_BLACK);
el17arm 18:ff0a53dcb862 25 }
el17arm 18:ff0a53dcb862 26
el17arm 45:bad704c546d4 27 // sets positions of all traps level 1
el17arm 42:d81c008b0436 28 void Levels::trap_pos1()
el17arm 20:78bd235f8caa 29 {
el17arm 40:913339e324b8 30 trap1.tx[0] = 25;
el17arm 40:913339e324b8 31 trap1.ty[0] = 44;
el17arm 40:913339e324b8 32 trap2.tx[0] = 58;
el17arm 40:913339e324b8 33 trap2.ty[0] = 6;
el17arm 40:913339e324b8 34 trap3.tx[0] = 75;
el17arm 40:913339e324b8 35 trap3.ty[0] = 6;
el17arm 41:0cf320f73424 36 trap4.tx[0] = 0;
el17arm 41:0cf320f73424 37 trap4.ty[0] = 0;
el17arm 41:0cf320f73424 38 trap5.tx[0] = 25;
el17arm 41:0cf320f73424 39 trap5.ty[0] = 36;
el17arm 37:4d525a37d5d2 40 }
el17arm 37:4d525a37d5d2 41
el17arm 45:bad704c546d4 42 // sets all key positions for keys
el17arm 42:d81c008b0436 43 void Levels::key_pos1()
el17arm 40:913339e324b8 44 {
el17arm 40:913339e324b8 45 key1.kx[0] = 79;
el17arm 40:913339e324b8 46 key1.ky[0] = 12;
el17arm 40:913339e324b8 47 key2.kx[0] = 36;
el17arm 40:913339e324b8 48 key2.ky[0] = 22;
el17arm 40:913339e324b8 49 key3.kx[0] = 40;
el17arm 40:913339e324b8 50 key3.ky[0] = 6;
el17arm 40:913339e324b8 51 key4.kx[0] = 62;
el17arm 40:913339e324b8 52 key4.ky[0] = 6;
el17arm 40:913339e324b8 53 key5.kx[0] = 75;
el17arm 40:913339e324b8 54 key5.ky[0] = 0;
el17arm 40:913339e324b8 55 }
el17arm 40:913339e324b8 56
el17arm 45:bad704c546d4 57 // sets all block positions for level 1
el17arm 42:d81c008b0436 58 void Levels::block_pos1()
el17arm 37:4d525a37d5d2 59 {
el17arm 40:913339e324b8 60 sol1.bx[0] = 49;
el17arm 40:913339e324b8 61 sol1.by[0] = 36;
el17arm 41:0cf320f73424 62
el17arm 44:e29458976114 63 sol2.bx[0] = 42;
el17arm 40:913339e324b8 64 sol2.by[0] = 22;
el17arm 40:913339e324b8 65
el17arm 41:0cf320f73424 66 sol3.bx[0] = -10;
el17arm 41:0cf320f73424 67 sol3.by[0] = -10;
el17arm 41:0cf320f73424 68
el17arm 41:0cf320f73424 69 sol4.bx[0] = -10;
el17arm 41:0cf320f73424 70 sol4.by[0] = -10;
el17arm 41:0cf320f73424 71
el17arm 41:0cf320f73424 72 sol5.bx[0] = -10;
el17arm 41:0cf320f73424 73 sol5.by[0] = -10;
el17arm 41:0cf320f73424 74 }
el17arm 41:0cf320f73424 75
el17arm 45:bad704c546d4 76 // sets all sinking block positions for level 1
el17arm 42:d81c008b0436 77 void Levels::soft_pos1()
el17arm 41:0cf320f73424 78 {
el17arm 41:0cf320f73424 79 sof1.sx1[0] = 55;
el17arm 40:913339e324b8 80 sof1.sy[0] = 36;
el17arm 41:0cf320f73424 81 sof1.sx2[0] = 65;
el17arm 40:913339e324b8 82
el17arm 45:bad704c546d4 83 sof2.sx1[0] = 27;
el17arm 40:913339e324b8 84 sof2.sy[0] = 9;
el17arm 41:0cf320f73424 85 sof2.sx2[0] = 39;
el17arm 41:0cf320f73424 86
el17arm 41:0cf320f73424 87 sof3.sx1[0] = 46;
el17arm 41:0cf320f73424 88 sof3.sy[0] = 9;
el17arm 41:0cf320f73424 89 sof3.sx2[0] = 52;
el17arm 40:913339e324b8 90
el17arm 41:0cf320f73424 91 sof4.sx1[0] = 0;
el17arm 41:0cf320f73424 92 sof4.sy[0] = 0;
el17arm 41:0cf320f73424 93 sof4.sx2[0] = 0;
el17arm 41:0cf320f73424 94
el17arm 45:bad704c546d4 95 sof5.sx1[0] = 0;
el17arm 45:bad704c546d4 96 sof5.sy[0] = 0;
el17arm 45:bad704c546d4 97 sof5.sx2[0] = 0;
el17arm 40:913339e324b8 98 }
el17arm 40:913339e324b8 99
el17arm 45:bad704c546d4 100 // sets all enemy positions for level 1
el17arm 42:d81c008b0436 101 void Levels::enem_pos1()
el17arm 40:913339e324b8 102 {
el17arm 40:913339e324b8 103 enem1.ex[0] = 22;
el17arm 40:913339e324b8 104 enem1.ey[0] = 20;
el17arm 40:913339e324b8 105 enem1.d[0] = 36;
el17arm 40:913339e324b8 106 enem1.v[0] = 0.5;
el17arm 40:913339e324b8 107
el17arm 40:913339e324b8 108 enem2.ex[0] = 0;
el17arm 40:913339e324b8 109 enem2.ey[0] = 4;
el17arm 40:913339e324b8 110 enem2.d[0] = 26;
el17arm 40:913339e324b8 111 enem2.v[0] = 1;
el17arm 41:0cf320f73424 112
el17arm 42:d81c008b0436 113 enem3.ex[0] = 49;
el17arm 42:d81c008b0436 114 enem3.ey[0] = 42;
el17arm 42:d81c008b0436 115 enem3.d[0] = 27;
el17arm 42:d81c008b0436 116 enem3.v[0] = 1;
el17arm 40:913339e324b8 117 }
el17arm 40:913339e324b8 118
el17arm 45:bad704c546d4 119 /////////////////level 2 objects /////////////////////////
el17arm 38:55bb9da08a52 120
el17arm 45:bad704c546d4 121 // platform positions for level 2
el17arm 42:d81c008b0436 122 void Levels::level_platforms2(N5110 &lcd)
el17arm 42:d81c008b0436 123 {
el17arm 44:e29458976114 124 lcd.drawLine(0, 47, 83, 47, 1);
el17arm 44:e29458976114 125 lcd.drawRect(4, 33, 12, 2, FILL_BLACK);
el17arm 44:e29458976114 126 lcd.drawRect(20, 41, 12, 2, FILL_BLACK);
el17arm 44:e29458976114 127 lcd.drawRect(36, 37, 12, 2, FILL_BLACK);
el17arm 44:e29458976114 128 lcd.drawRect(48, 29, 12, 2, FILL_BLACK);
el17arm 44:e29458976114 129 lcd.drawRect(20, 21, 24, 2, FILL_BLACK);
el17arm 44:e29458976114 130 lcd.drawRect(0, 10, 49, 2, FILL_BLACK);
el17arm 44:e29458976114 131 lcd.drawRect(54, 14, 12, 2, FILL_BLACK);
el17arm 44:e29458976114 132 lcd.drawRect(66, 8, 12, 2, FILL_BLACK);
el17arm 42:d81c008b0436 133 }
el17arm 45:bad704c546d4 134
el17arm 45:bad704c546d4 135 // key positions for level 2
el17arm 42:d81c008b0436 136 void Levels::key_pos2()
el17arm 38:55bb9da08a52 137 {
el17arm 44:e29458976114 138 key1.kx[1] = 51;
el17arm 44:e29458976114 139 key1.ky[1] = 39;
el17arm 44:e29458976114 140
el17arm 44:e29458976114 141 key2.kx[1] = 79;
el17arm 49:9bea7089b657 142 key2.ky[1] = 29;
el17arm 44:e29458976114 143
el17arm 44:e29458976114 144 key3.kx[1] = 72;
el17arm 44:e29458976114 145 key3.ky[1] = 23;
el17arm 44:e29458976114 146
el17arm 44:e29458976114 147 key4.kx[1] = 24;
el17arm 44:e29458976114 148 key4.ky[1] = 0;
el17arm 44:e29458976114 149
el17arm 44:e29458976114 150 key5.kx[1] = 69;
el17arm 44:e29458976114 151 key5.ky[1] = 5;
el17arm 40:913339e324b8 152 }
el17arm 40:913339e324b8 153
el17arm 45:bad704c546d4 154 // trap positions for level 2
el17arm 42:d81c008b0436 155 void Levels::trap_pos2()
el17arm 40:913339e324b8 156 {
el17arm 44:e29458976114 157 trap1.tx[1] = 30;
el17arm 44:e29458976114 158 trap1.ty[1] = 7;
el17arm 44:e29458976114 159
el17arm 44:e29458976114 160 trap2.tx[1] = 72;
el17arm 44:e29458976114 161 trap2.ty[1] = 17;
el17arm 44:e29458976114 162
el17arm 44:e29458976114 163 trap3.tx[1] = 51;
el17arm 44:e29458976114 164 trap3.ty[1] = 44;
el17arm 44:e29458976114 165
el17arm 44:e29458976114 166 trap4.tx[1] = 42;
el17arm 44:e29458976114 167 trap4.ty[1] = 7;
el17arm 44:e29458976114 168
el17arm 49:9bea7089b657 169 trap5.tx[1] = 80;
el17arm 49:9bea7089b657 170 trap5.ty[1] = 35;
el17arm 38:55bb9da08a52 171 }
el17arm 38:55bb9da08a52 172
el17arm 45:bad704c546d4 173 // enemy positions for level 2
el17arm 42:d81c008b0436 174 void Levels::enem_pos2()
el17arm 40:913339e324b8 175 {
el17arm 44:e29458976114 176 enem1.ex[1] = 20;
el17arm 44:e29458976114 177 enem1.ey[1] = 16;
el17arm 44:e29458976114 178 enem1.d[1] = 44;
el17arm 40:913339e324b8 179 enem1.v[1] = 0.5;
el17arm 40:913339e324b8 180
el17arm 44:e29458976114 181 enem2.ex[1] = 0;
el17arm 44:e29458976114 182 enem2.ey[1] = 5;
el17arm 49:9bea7089b657 183 enem2.d[1] = 28;
el17arm 40:913339e324b8 184 enem2.v[1] = 1;
el17arm 44:e29458976114 185
el17arm 44:e29458976114 186 enem3.ex[1] = 54;
el17arm 44:e29458976114 187 enem3.ey[1] = 42;
el17arm 44:e29458976114 188 enem3.d[1] = 30;
el17arm 44:e29458976114 189 enem3.v[1] = 1;
el17arm 40:913339e324b8 190 }
el17arm 40:913339e324b8 191
el17arm 45:bad704c546d4 192 // block positions for level 2
el17arm 42:d81c008b0436 193 void Levels::block_pos2()
el17arm 38:55bb9da08a52 194 {
el17arm 42:d81c008b0436 195 sol1.bx[1] = 66;
el17arm 42:d81c008b0436 196 sol1.by[1] = 38;
el17arm 41:0cf320f73424 197
el17arm 42:d81c008b0436 198 sol2.bx[1] = 66;
el17arm 44:e29458976114 199 sol2.by[1] = 32;
el17arm 40:913339e324b8 200
el17arm 42:d81c008b0436 201 sol3.bx[1] = 66;
el17arm 44:e29458976114 202 sol3.by[1] = 26;
el17arm 41:0cf320f73424 203
el17arm 42:d81c008b0436 204 sol4.bx[1] = 66;
el17arm 44:e29458976114 205 sol4.by[1] = 20;
el17arm 40:913339e324b8 206
el17arm 42:d81c008b0436 207 sol5.bx[1] = 66;
el17arm 44:e29458976114 208 sol5.by[1] = 14;
el17arm 41:0cf320f73424 209 }
el17arm 41:0cf320f73424 210
el17arm 45:bad704c546d4 211 // sinking block positions for level 2
el17arm 42:d81c008b0436 212 void Levels::soft_pos2()
el17arm 41:0cf320f73424 213 {
el17arm 42:d81c008b0436 214 sof1.sx1[1] = 72;
el17arm 42:d81c008b0436 215 sof1.sy[1] = 38;
el17arm 42:d81c008b0436 216 sof1.sx2[1] = 84;
el17arm 41:0cf320f73424 217
el17arm 42:d81c008b0436 218 sof2.sx1[1] = 72;
el17arm 44:e29458976114 219 sof2.sy[1] = 32;
el17arm 42:d81c008b0436 220 sof2.sx2[1] = 84;
el17arm 41:0cf320f73424 221
el17arm 42:d81c008b0436 222 sof3.sx1[1] = 72;
el17arm 44:e29458976114 223 sof3.sy[1] = 26;
el17arm 42:d81c008b0436 224 sof3.sx2[1] = 84;
el17arm 41:0cf320f73424 225
el17arm 42:d81c008b0436 226 sof4.sx1[1] = 72;
el17arm 44:e29458976114 227 sof4.sy[1] = 20;
el17arm 42:d81c008b0436 228 sof4.sx2[1] = 84;
el17arm 41:0cf320f73424 229
el17arm 42:d81c008b0436 230 sof5.sx1[1] = 72;
el17arm 44:e29458976114 231 sof5.sy[1] = 14;
el17arm 42:d81c008b0436 232 sof5.sx2[1] = 84;
el17arm 40:913339e324b8 233 }
el17arm 40:913339e324b8 234
el17arm 45:bad704c546d4 235 // platform positions for level 3
el17arm 44:e29458976114 236 void Levels::level_platforms3(N5110 &lcd)
el17arm 44:e29458976114 237 {
el17arm 44:e29458976114 238 lcd.drawLine(0, 47, 83, 47, 1);
el17arm 44:e29458976114 239 lcd.drawRect(36, 31, 6, 2, FILL_BLACK);
el17arm 44:e29458976114 240 lcd.drawRect(30, 10, 42, 2, FILL_BLACK);
el17arm 44:e29458976114 241 lcd.drawRect(78, 20, 6, 2, FILL_BLACK);
el17arm 44:e29458976114 242 lcd.drawRect(66, 26, 10, 2, FILL_BLACK);
el17arm 44:e29458976114 243 lcd.drawRect(54, 30, 10, 2, FILL_BLACK);
el17arm 44:e29458976114 244
el17arm 44:e29458976114 245 }
el17arm 45:bad704c546d4 246
el17arm 45:bad704c546d4 247 /////////////////level 3 objects /////////////////////////
el17arm 45:bad704c546d4 248
el17arm 45:bad704c546d4 249 // key positions for level 3
el17arm 44:e29458976114 250 void Levels::key_pos3()
el17arm 44:e29458976114 251 {
el17arm 44:e29458976114 252 key1.kx[2] = 38;
el17arm 44:e29458976114 253 key1.ky[2] = 7;
el17arm 44:e29458976114 254
el17arm 44:e29458976114 255 key2.kx[2] = 66;
el17arm 44:e29458976114 256 key2.ky[2] = 7;
el17arm 44:e29458976114 257
el17arm 44:e29458976114 258 key3.kx[2] = 0;
el17arm 44:e29458976114 259 key3.ky[2] = 5;
el17arm 44:e29458976114 260
el17arm 44:e29458976114 261 key4.kx[2] = 57;
el17arm 44:e29458976114 262 key4.ky[2] = 27;
el17arm 44:e29458976114 263
el17arm 44:e29458976114 264 key5.kx[2] = 69;
el17arm 44:e29458976114 265 key5.ky[2] = 23;
el17arm 44:e29458976114 266 }
el17arm 42:d81c008b0436 267
el17arm 45:bad704c546d4 268 // trap positions for level 3
el17arm 44:e29458976114 269 void Levels::trap_pos3()
el17arm 44:e29458976114 270 {
el17arm 44:e29458976114 271 trap1.tx[2] = 54;
el17arm 44:e29458976114 272 trap1.ty[2] = 27;
el17arm 44:e29458976114 273
el17arm 44:e29458976114 274 trap2.tx[2] = 66;
el17arm 44:e29458976114 275 trap2.ty[2] = 23;
el17arm 44:e29458976114 276
el17arm 44:e29458976114 277 trap3.tx[2] = 61;
el17arm 44:e29458976114 278 trap3.ty[2] = 27;
el17arm 44:e29458976114 279
el17arm 44:e29458976114 280 trap4.tx[2] = 73;
el17arm 44:e29458976114 281 trap4.ty[2] = 23;
el17arm 44:e29458976114 282
el17arm 44:e29458976114 283 trap5.tx[2] = 52;
el17arm 44:e29458976114 284 trap5.ty[2] = 7;
el17arm 44:e29458976114 285 }
el17arm 44:e29458976114 286
el17arm 45:bad704c546d4 287 // enemy positions for level 3
el17arm 44:e29458976114 288 void Levels::enem_pos3()
el17arm 44:e29458976114 289 {
el17arm 44:e29458976114 290 enem1.ex[2] = 49;
el17arm 44:e29458976114 291 enem1.ey[2] = 5;
el17arm 44:e29458976114 292 enem1.d[2] = 33;
el17arm 44:e29458976114 293 enem1.v[2] = 1;
el17arm 44:e29458976114 294
el17arm 44:e29458976114 295 enem2.ex[2] = 30;
el17arm 44:e29458976114 296 enem2.ey[2] = 5;
el17arm 44:e29458976114 297 enem2.d[2] = 42;
el17arm 44:e29458976114 298 enem2.v[2] = 1.25;
el17arm 44:e29458976114 299
el17arm 44:e29458976114 300 enem3.ex[2] = 35;
el17arm 44:e29458976114 301 enem3.ey[2] = 5;
el17arm 44:e29458976114 302 enem3.d[2] = 20;
el17arm 44:e29458976114 303 enem3.v[2] = 1;
el17arm 44:e29458976114 304 }
el17arm 44:e29458976114 305
el17arm 45:bad704c546d4 306 // block positions for level 3
el17arm 44:e29458976114 307 void Levels::block_pos3()
el17arm 44:e29458976114 308 {
el17arm 44:e29458976114 309 sol1.bx[2] = 15;
el17arm 44:e29458976114 310 sol1.by[2] = 39;
el17arm 44:e29458976114 311
el17arm 44:e29458976114 312 sol2.bx[2] = 30;
el17arm 44:e29458976114 313 sol2.by[2] = 31;
el17arm 44:e29458976114 314
el17arm 44:e29458976114 315 sol3.bx[2] = 15;
el17arm 44:e29458976114 316 sol3.by[2] = 23;
el17arm 44:e29458976114 317
el17arm 44:e29458976114 318 sol4.bx[2] = 0;
el17arm 44:e29458976114 319 sol4.by[2] = 8;
el17arm 44:e29458976114 320
el17arm 44:e29458976114 321 sol5.bx[2] = 0;
el17arm 44:e29458976114 322 sol5.by[2] = 16;
el17arm 44:e29458976114 323 }
el17arm 44:e29458976114 324
el17arm 45:bad704c546d4 325 // sinking block positions for level 3
el17arm 44:e29458976114 326 void Levels::soft_pos3()
el17arm 44:e29458976114 327 {
el17arm 44:e29458976114 328 sof1.sx1[2] = 12;
el17arm 44:e29458976114 329 sof1.sy[2] = 16;
el17arm 44:e29458976114 330 sof1.sx2[2] = 24;
el17arm 44:e29458976114 331
el17arm 44:e29458976114 332 sof2.sx1[2] = 72;
el17arm 44:e29458976114 333 sof2.sy[2] = 10;
el17arm 44:e29458976114 334 sof2.sx2[2] = 84;
el17arm 44:e29458976114 335
el17arm 44:e29458976114 336 sof3.sx1[2] = 0;
el17arm 44:e29458976114 337 sof3.sy[2] = 0;
el17arm 44:e29458976114 338 sof3.sx2[2] = 0;
el17arm 44:e29458976114 339
el17arm 44:e29458976114 340 sof4.sx1[2] = 0;
el17arm 44:e29458976114 341 sof4.sy[2] = 0;
el17arm 44:e29458976114 342 sof4.sx2[2] = 0;
el17arm 44:e29458976114 343
el17arm 44:e29458976114 344 sof5.sx1[2] = 0;
el17arm 44:e29458976114 345 sof5.sy[2] = 0;
el17arm 44:e29458976114 346 sof5.sx2[2] = 0;
el17arm 44:e29458976114 347 }
el17arm 44:e29458976114 348
el17arm 45:bad704c546d4 349 // exit positions for all levels
el17arm 45:bad704c546d4 350 void Levels::level_exits(N5110 &lcd)
el17arm 45:bad704c546d4 351 {
el17arm 45:bad704c546d4 352 exit1.lx[0] = 78;
el17arm 45:bad704c546d4 353 exit1.ly[0] = 41;
el17arm 45:bad704c546d4 354
el17arm 45:bad704c546d4 355 exit1.lx[1] = 79;
el17arm 45:bad704c546d4 356 exit1.ly[1] = 41;
el17arm 45:bad704c546d4 357
el17arm 45:bad704c546d4 358 exit1.lx[2] = 70;
el17arm 45:bad704c546d4 359 exit1.ly[2] = 41;
el17arm 45:bad704c546d4 360
el17arm 45:bad704c546d4 361 exit1.lx[3] = 70;
el17arm 45:bad704c546d4 362 exit1.ly[3] = 41;
el17arm 45:bad704c546d4 363 }