ELEC2645 (2018/19) / Mbed 2 deprecated el17arm

Dependencies:   mbed

Committer:
el17arm
Date:
Wed Apr 24 13:17:58 2019 +0000
Revision:
45:bad704c546d4
Parent:
44:e29458976114
Child:
49:9bea7089b657
Test publish

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