Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Sprites/Sprites.h@44:e29458976114, 2019-04-17 (annotated)
- 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?
User | Revision | Line number | New 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 |