ELEC2645 (2018/19) / Mbed 2 deprecated el17arm

Dependencies:   mbed

Committer:
el17arm
Date:
Tue Apr 16 02:01:53 2019 +0000
Revision:
41:0cf320f73424
Parent:
40:913339e324b8
Child:
43:1ec6b6293c6b
added final score, leds now show oxygen remaining and lives, also added sound effects but may remove as gets annoying after a while

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 40:913339e324b8 97
el17arm 38:55bb9da08a52 98 ////////structs for populating levels//////////////////
el17arm 38:55bb9da08a52 99
el17arm 38:55bb9da08a52 100 struct Enemies {
el17arm 40:913339e324b8 101 bool f[5];
el17arm 40:913339e324b8 102 double ex[5];
el17arm 40:913339e324b8 103 double ey[5];
el17arm 40:913339e324b8 104 int c[5];
el17arm 40:913339e324b8 105 int d[5];
el17arm 40:913339e324b8 106 double v[5];
el17arm 38:55bb9da08a52 107 };
el17arm 38:55bb9da08a52 108
el17arm 38:55bb9da08a52 109 struct Traps {
el17arm 40:913339e324b8 110 double tx[5];
el17arm 40:913339e324b8 111 double ty[5];
el17arm 38:55bb9da08a52 112 };
el17arm 38:55bb9da08a52 113
el17arm 38:55bb9da08a52 114 struct Keys {
el17arm 40:913339e324b8 115 double kx[5];
el17arm 40:913339e324b8 116 double ky[5];
el17arm 38:55bb9da08a52 117 };
el17arm 38:55bb9da08a52 118
el17arm 38:55bb9da08a52 119 struct Solid_blocks {
el17arm 40:913339e324b8 120 double bx[5];
el17arm 40:913339e324b8 121 double by[5];
el17arm 38:55bb9da08a52 122 };
el17arm 38:55bb9da08a52 123
el17arm 38:55bb9da08a52 124 struct Soft_blocks {
el17arm 41:0cf320f73424 125 double sx1[5];
el17arm 40:913339e324b8 126 double sy[5];
el17arm 41:0cf320f73424 127 int sx2[5];
el17arm 40:913339e324b8 128 };
el17arm 40:913339e324b8 129
el17arm 40:913339e324b8 130 struct Level_exit {
el17arm 40:913339e324b8 131 double lx[5];
el17arm 40:913339e324b8 132 double ly[5];
el17arm 33:023f57d52b1c 133 };
el17arm 33:023f57d52b1c 134
el17arm 33:023f57d52b1c 135 class Sprites
el17arm 33:023f57d52b1c 136 {
el17arm 33:023f57d52b1c 137
el17arm 33:023f57d52b1c 138 public:
el17arm 33:023f57d52b1c 139
el17arm 33:023f57d52b1c 140 Sprites();
el17arm 33:023f57d52b1c 141 ~Sprites();
el17arm 41:0cf320f73424 142 Vector2D get_pos();
el17arm 33:023f57d52b1c 143
el17arm 33:023f57d52b1c 144 void miner_init(int x, int y);
el17arm 40:913339e324b8 145 int miner_move(Direction d, N5110 &lcd);
el17arm 33:023f57d52b1c 146 void miner_draw(N5110 &lcd);
el17arm 33:023f57d52b1c 147 void miner_gravity(N5110 &lcd);
el17arm 37:4d525a37d5d2 148 int miner_jump(N5110 &lcd, Gamepad &pad);
el17arm 33:023f57d52b1c 149 void miner_land(N5110 &lcd);
el17arm 33:023f57d52b1c 150
el17arm 33:023f57d52b1c 151 void enemy_init(int i, int x, int y, int d);
el17arm 33:023f57d52b1c 152 void enemy_move(int i, double v, N5110 &lcd);
el17arm 33:023f57d52b1c 153 bool enemy_collision(int i);
el17arm 33:023f57d52b1c 154
el17arm 33:023f57d52b1c 155 void key_collect(int k, int x, int y, N5110 &lcd, Gamepad &pad);
el17arm 40:913339e324b8 156 int keys_collected();
el17arm 33:023f57d52b1c 157
el17arm 37:4d525a37d5d2 158 bool trap(int x, int y, N5110 &lcd);
el17arm 38:55bb9da08a52 159 void blocks(Direction d, int x, int y, N5110 &lcd);
el17arm 38:55bb9da08a52 160 void soft_blocks(int x, int y, int z, N5110 &lcd);
el17arm 33:023f57d52b1c 161
el17arm 41:0cf320f73424 162 bool exit_level(int x, int y, N5110 &lcd);
el17arm 41:0cf320f73424 163
el17arm 38:55bb9da08a52 164 keyed _k;
el17arm 38:55bb9da08a52 165
el17arm 33:023f57d52b1c 166 private:
el17arm 33:023f57d52b1c 167
el17arm 33:023f57d52b1c 168 int _direction;
el17arm 33:023f57d52b1c 169 int _gravity;
el17arm 33:023f57d52b1c 170 bool _jump;
el17arm 33:023f57d52b1c 171 int _y;
el17arm 33:023f57d52b1c 172 int _x;
el17arm 33:023f57d52b1c 173 bool _j_flag;
el17arm 33:023f57d52b1c 174 int _j_counter;
el17arm 33:023f57d52b1c 175
el17arm 34:c5a042973e0c 176 bool block[5];
el17arm 36:203ec93b4cc7 177 bool right_collision;
el17arm 36:203ec93b4cc7 178 bool left_collision;
el17arm 36:203ec93b4cc7 179
el17arm 36:203ec93b4cc7 180 bool _collision;
el17arm 36:203ec93b4cc7 181 int _keys;
el17arm 36:203ec93b4cc7 182
el17arm 34:c5a042973e0c 183 double bx[5];
el17arm 34:c5a042973e0c 184 double by[5];
el17arm 38:55bb9da08a52 185
el17arm 37:4d525a37d5d2 186 bool _key[5];
el17arm 37:4d525a37d5d2 187 double kx[5];
el17arm 37:4d525a37d5d2 188 double ky[5];
el17arm 38:55bb9da08a52 189
el17arm 41:0cf320f73424 190 enemies_init _enem;
el17arm 33:023f57d52b1c 191 };
el17arm 33:023f57d52b1c 192 #endif