ELEC2645 (2018/19) / Mbed 2 deprecated el17arm

Dependencies:   mbed

Committer:
el17arm
Date:
Wed Apr 17 19:57:33 2019 +0000
Revision:
44:e29458976114
Parent:
43:1ec6b6293c6b
Child:
45:bad704c546d4
Fixed problem with enemy positions not updating on level complete.All levels implemented and complete game screen added, just needs play testing to ensure no bugs

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17arm 33:023f57d52b1c 1 #ifndef SPRITES_H
el17arm 33:023f57d52b1c 2 #define SPRITES_H
el17arm 33:023f57d52b1c 3
el17arm 33:023f57d52b1c 4 #include "mbed.h"
el17arm 33:023f57d52b1c 5 #include "N5110.h"
el17arm 33:023f57d52b1c 6 #include "Gamepad.h"
el17arm 41:0cf320f73424 7
el17arm 33:023f57d52b1c 8
el17arm 33:023f57d52b1c 9 const int miner_right[24] = {
el17arm 41:0cf320f73424 10
el17arm 33:023f57d52b1c 11 1,1,1,
el17arm 33:023f57d52b1c 12 1,1,0,
el17arm 33:023f57d52b1c 13 1,1,1,
el17arm 33:023f57d52b1c 14 0,1,0,
el17arm 33:023f57d52b1c 15 1,1,1,
el17arm 33:023f57d52b1c 16 1,1,1,
el17arm 33:023f57d52b1c 17 0,1,0,
el17arm 33:023f57d52b1c 18 0,1,1,
el17arm 33:023f57d52b1c 19
el17arm 33:023f57d52b1c 20 };
el17arm 33:023f57d52b1c 21
el17arm 33:023f57d52b1c 22 const int miner_left[24] = {
el17arm 41:0cf320f73424 23
el17arm 33:023f57d52b1c 24 1,1,1,
el17arm 33:023f57d52b1c 25 0,1,1,
el17arm 33:023f57d52b1c 26 1,1,1,
el17arm 33:023f57d52b1c 27 0,1,0,
el17arm 33:023f57d52b1c 28 1,1,1,
el17arm 33:023f57d52b1c 29 1,1,1,
el17arm 33:023f57d52b1c 30 0,1,0,
el17arm 33:023f57d52b1c 31 1,1,0,
el17arm 33:023f57d52b1c 32 };
el17arm 33:023f57d52b1c 33
el17arm 33:023f57d52b1c 34 const int enemy[15] = {
el17arm 33:023f57d52b1c 35
el17arm 33:023f57d52b1c 36 1,1,1,
el17arm 33:023f57d52b1c 37 1,0,1,
el17arm 33:023f57d52b1c 38 1,1,1,
el17arm 33:023f57d52b1c 39 0,1,0,
el17arm 33:023f57d52b1c 40 1,1,1,
el17arm 33:023f57d52b1c 41 };
el17arm 33:023f57d52b1c 42
el17arm 33:023f57d52b1c 43 const int key[12] = {
el17arm 41:0cf320f73424 44
el17arm 33:023f57d52b1c 45 1,1,0,0,
el17arm 33:023f57d52b1c 46 1,0,1,1,
el17arm 33:023f57d52b1c 47 1,1,0,1,
el17arm 33:023f57d52b1c 48 };
el17arm 33:023f57d52b1c 49
el17arm 33:023f57d52b1c 50 const int key_collected[12] = {
el17arm 33:023f57d52b1c 51
el17arm 33:023f57d52b1c 52 0,0,0,0,
el17arm 33:023f57d52b1c 53 0,0,0,0,
el17arm 33:023f57d52b1c 54 0,0,0,0,
el17arm 33:023f57d52b1c 55 };
el17arm 33:023f57d52b1c 56
el17arm 33:023f57d52b1c 57 const int spike[9] = {
el17arm 33:023f57d52b1c 58
el17arm 34:c5a042973e0c 59 1,0,1,
el17arm 33:023f57d52b1c 60 0,1,0,
el17arm 34:c5a042973e0c 61 1,0,1,
el17arm 33:023f57d52b1c 62 };
el17arm 33:023f57d52b1c 63
el17arm 34:c5a042973e0c 64 const int solid_block[18] = {
el17arm 33:023f57d52b1c 65
el17arm 34:c5a042973e0c 66 1,1,1,1,1,1,
el17arm 34:c5a042973e0c 67 1,0,1,1,0,1,
el17arm 34:c5a042973e0c 68 1,1,1,1,1,1,
el17arm 33:023f57d52b1c 69 };
el17arm 33:023f57d52b1c 70
el17arm 33:023f57d52b1c 71 const int door[30] = {
el17arm 33:023f57d52b1c 72
el17arm 33:023f57d52b1c 73 1,1,1,1,1,
el17arm 33:023f57d52b1c 74 1,0,1,0,1,
el17arm 33:023f57d52b1c 75 1,1,0,1,1,
el17arm 33:023f57d52b1c 76 1,0,1,0,1,
el17arm 33:023f57d52b1c 77 1,1,0,1,1,
el17arm 33:023f57d52b1c 78 1,0,1,0,1,
el17arm 33:023f57d52b1c 79 };
el17arm 38:55bb9da08a52 80
el17arm 38:55bb9da08a52 81 ///////structs for sprites detection///////////////////
el17arm 38:55bb9da08a52 82
el17arm 38:55bb9da08a52 83 struct keyed {
el17arm 38:55bb9da08a52 84 bool key[5];
el17arm 38:55bb9da08a52 85 double kx[5];
el17arm 38:55bb9da08a52 86 double ky[5];
el17arm 38:55bb9da08a52 87 };
el17arm 38:55bb9da08a52 88
el17arm 40:913339e324b8 89 struct enemies_init {
el17arm 40:913339e324b8 90 bool eflag[5];
el17arm 40:913339e324b8 91 double ex[5];
el17arm 40:913339e324b8 92 double ey[5];
el17arm 40:913339e324b8 93 int counter[5];
el17arm 40:913339e324b8 94 int distance[5];
el17arm 40:913339e324b8 95 };
el17arm 40:913339e324b8 96
el17arm 43:1ec6b6293c6b 97 struct Solid_blocks_init {
el17arm 43:1ec6b6293c6b 98 int block[5];
el17arm 43:1ec6b6293c6b 99 double bx[5];
el17arm 43:1ec6b6293c6b 100 double by[5];
el17arm 43:1ec6b6293c6b 101 bool collision[5];
el17arm 40:913339e324b8 102
el17arm 43:1ec6b6293c6b 103 };
el17arm 38:55bb9da08a52 104 ////////structs for populating levels//////////////////
el17arm 38:55bb9da08a52 105
el17arm 38:55bb9da08a52 106 struct Enemies {
el17arm 40:913339e324b8 107 bool f[5];
el17arm 40:913339e324b8 108 double ex[5];
el17arm 40:913339e324b8 109 double ey[5];
el17arm 40:913339e324b8 110 int c[5];
el17arm 40:913339e324b8 111 int d[5];
el17arm 40:913339e324b8 112 double v[5];
el17arm 38:55bb9da08a52 113 };
el17arm 38:55bb9da08a52 114
el17arm 38:55bb9da08a52 115 struct Traps {
el17arm 40:913339e324b8 116 double tx[5];
el17arm 40:913339e324b8 117 double ty[5];
el17arm 38:55bb9da08a52 118 };
el17arm 38:55bb9da08a52 119
el17arm 38:55bb9da08a52 120 struct Keys {
el17arm 40:913339e324b8 121 double kx[5];
el17arm 40:913339e324b8 122 double ky[5];
el17arm 38:55bb9da08a52 123 };
el17arm 38:55bb9da08a52 124
el17arm 38:55bb9da08a52 125 struct Solid_blocks {
el17arm 40:913339e324b8 126 double bx[5];
el17arm 40:913339e324b8 127 double by[5];
el17arm 38:55bb9da08a52 128 };
el17arm 38:55bb9da08a52 129
el17arm 38:55bb9da08a52 130 struct Soft_blocks {
el17arm 41:0cf320f73424 131 double sx1[5];
el17arm 40:913339e324b8 132 double sy[5];
el17arm 41:0cf320f73424 133 int sx2[5];
el17arm 40:913339e324b8 134 };
el17arm 40:913339e324b8 135
el17arm 40:913339e324b8 136 struct Level_exit {
el17arm 40:913339e324b8 137 double lx[5];
el17arm 40:913339e324b8 138 double ly[5];
el17arm 33:023f57d52b1c 139 };
el17arm 33:023f57d52b1c 140
el17arm 33:023f57d52b1c 141 class Sprites
el17arm 33:023f57d52b1c 142 {
el17arm 33:023f57d52b1c 143
el17arm 33:023f57d52b1c 144 public:
el17arm 33:023f57d52b1c 145
el17arm 33:023f57d52b1c 146 Sprites();
el17arm 33:023f57d52b1c 147 ~Sprites();
el17arm 41:0cf320f73424 148 Vector2D get_pos();
el17arm 33:023f57d52b1c 149
el17arm 33:023f57d52b1c 150 void miner_init(int x, int y);
el17arm 40:913339e324b8 151 int miner_move(Direction d, N5110 &lcd);
el17arm 33:023f57d52b1c 152 void miner_draw(N5110 &lcd);
el17arm 33:023f57d52b1c 153 void miner_gravity(N5110 &lcd);
el17arm 37:4d525a37d5d2 154 int miner_jump(N5110 &lcd, Gamepad &pad);
el17arm 33:023f57d52b1c 155 void miner_land(N5110 &lcd);
el17arm 33:023f57d52b1c 156
el17arm 33:023f57d52b1c 157 void enemy_init(int i, int x, int y, int d);
el17arm 33:023f57d52b1c 158 void enemy_move(int i, double v, N5110 &lcd);
el17arm 33:023f57d52b1c 159 bool enemy_collision(int i);
el17arm 33:023f57d52b1c 160
el17arm 33:023f57d52b1c 161 void key_collect(int k, int x, int y, N5110 &lcd, Gamepad &pad);
el17arm 40:913339e324b8 162 int keys_collected();
el17arm 33:023f57d52b1c 163
el17arm 37:4d525a37d5d2 164 bool trap(int x, int y, N5110 &lcd);
el17arm 43:1ec6b6293c6b 165 void blocks(Direction d, int i, int x, int y, N5110 &lcd);
el17arm 43:1ec6b6293c6b 166 bool block_collision();
el17arm 38:55bb9da08a52 167 void soft_blocks(int x, int y, int z, N5110 &lcd);
el17arm 33:023f57d52b1c 168
el17arm 41:0cf320f73424 169 bool exit_level(int x, int y, N5110 &lcd);
el17arm 43:1ec6b6293c6b 170 keyed _k;
el17arm 44:e29458976114 171 enemies_init _enem;
el17arm 41:0cf320f73424 172
el17arm 43:1ec6b6293c6b 173
el17arm 38:55bb9da08a52 174
el17arm 33:023f57d52b1c 175 private:
el17arm 33:023f57d52b1c 176
el17arm 33:023f57d52b1c 177 int _direction;
el17arm 33:023f57d52b1c 178 int _gravity;
el17arm 33:023f57d52b1c 179 bool _jump;
el17arm 33:023f57d52b1c 180 int _y;
el17arm 33:023f57d52b1c 181 int _x;
el17arm 33:023f57d52b1c 182 bool _j_flag;
el17arm 33:023f57d52b1c 183 int _j_counter;
el17arm 33:023f57d52b1c 184
el17arm 34:c5a042973e0c 185 bool block[5];
el17arm 36:203ec93b4cc7 186 bool right_collision;
el17arm 36:203ec93b4cc7 187 bool left_collision;
el17arm 36:203ec93b4cc7 188
el17arm 36:203ec93b4cc7 189 bool _collision;
el17arm 36:203ec93b4cc7 190 int _keys;
el17arm 36:203ec93b4cc7 191
el17arm 38:55bb9da08a52 192
el17arm 43:1ec6b6293c6b 193 Solid_blocks_init _b;
el17arm 44:e29458976114 194
el17arm 33:023f57d52b1c 195 };
el17arm 33:023f57d52b1c 196 #endif