ELEC2645 (2018/19) / Mbed 2 deprecated el17arm

Dependencies:   mbed

Committer:
el17arm
Date:
Mon Apr 15 02:01:41 2019 +0000
Revision:
40:913339e324b8
Parent:
38:55bb9da08a52
Child:
41:0cf320f73424
all level object parameters are now initialised in Level class

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