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@40:913339e324b8, 2019-04-15 (annotated)
- 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?
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 | 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 |