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 MotionSensor
Entity/Mobs/Headless/Headless.h@59:fd4669864b67, 2019-05-09 (annotated)
- Committer:
- el17sm
- Date:
- Thu May 09 14:49:27 2019 +0000
- Revision:
- 59:fd4669864b67
- Parent:
- 58:c8d90bb7404a
wtf y no work
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| el17sm | 32:fe6359ef9916 | 1 | #ifndef HEADLESS_H |
| el17sm | 32:fe6359ef9916 | 2 | #define HEADLESS_H |
| el17sm | 32:fe6359ef9916 | 3 | #include "Entity.h" |
| el17sm | 32:fe6359ef9916 | 4 | |
| el17sm | 58:c8d90bb7404a | 5 | /**Headless Class |
| el17sm | 59:fd4669864b67 | 6 | *@author Steven Mahasin |
| el17sm | 59:fd4669864b67 | 7 | *@brief Creates a Headless which inherits the Entity class, this is one of the mobs that spawns in the normal rooms. |
| el17sm | 59:fd4669864b67 | 8 | *@date May 2019 |
| el17sm | 58:c8d90bb7404a | 9 | */ |
| el17sm | 32:fe6359ef9916 | 10 | class Headless : public Entity |
| el17sm | 32:fe6359ef9916 | 11 | { |
| el17sm | 32:fe6359ef9916 | 12 | |
| el17sm | 32:fe6359ef9916 | 13 | public: |
| el17sm | 58:c8d90bb7404a | 14 | /** Constructor |
| el17sm | 58:c8d90bb7404a | 15 | * @brief creates a headless at positions pos_x and pos_y |
| el17sm | 58:c8d90bb7404a | 16 | * @param pos_x @details initialise _position.x |
| el17sm | 58:c8d90bb7404a | 17 | * @param pos_y @details initialise _position.y |
| el17sm | 58:c8d90bb7404a | 18 | */ |
| el17sm | 58:c8d90bb7404a | 19 | Headless(float pos_x, float pos_y); |
| el17sm | 32:fe6359ef9916 | 20 | |
| el17sm | 32:fe6359ef9916 | 21 | // Functions |
| el17sm | 58:c8d90bb7404a | 22 | /** |
| el17sm | 58:c8d90bb7404a | 23 | * @brief function moves the headless towards the player |
| el17sm | 59:fd4669864b67 | 24 | * @param x_value - player x-position |
| el17sm | 59:fd4669864b67 | 25 | * @param y_value - player y-position |
| el17sm | 59:fd4669864b67 | 26 | * @param map - the 2d map array that dictates where there are walls or empty space |
| el17sm | 59:fd4669864b67 | 27 | * @param doorways - an array that dictates which side of the wall has a doorway |
| el17sm | 58:c8d90bb7404a | 28 | */ |
| el17sm | 34:1d5b4da3935e | 29 | virtual void move(float player_x, float player_y, char * map, bool * doorways); |
| el17sm | 58:c8d90bb7404a | 30 | /** |
| el17sm | 58:c8d90bb7404a | 31 | * @brief reduce _hp by damage |
| el17sm | 58:c8d90bb7404a | 32 | * @param damage @details the amount of damage to be taken |
| el17sm | 58:c8d90bb7404a | 33 | */ |
| el17sm | 58:c8d90bb7404a | 34 | virtual void take_damage(int damage); |
| el17sm | 58:c8d90bb7404a | 35 | /** |
| el17sm | 58:c8d90bb7404a | 36 | * @brief a virtual function of drawing the headless onto the screen |
| el17sm | 58:c8d90bb7404a | 37 | * @param lcd @details the screen where the headless is drawn on |
| el17sm | 58:c8d90bb7404a | 38 | */ |
| el17sm | 32:fe6359ef9916 | 39 | virtual void draw(N5110 &lcd); |
| el17sm | 32:fe6359ef9916 | 40 | |
| el17sm | 32:fe6359ef9916 | 41 | private: |
| el17sm | 56:ef9521b7ed78 | 42 | // Methods |
| el17sm | 58:c8d90bb7404a | 43 | /** |
| el17sm | 58:c8d90bb7404a | 44 | * @brief gets the sprite array |
| el17sm | 58:c8d90bb7404a | 45 | * @return char pointer array of the corresponding snake sprite frame |
| el17sm | 58:c8d90bb7404a | 46 | */ |
| el17sm | 33:4f3948dcd2f7 | 47 | char * get_frame(); |
| el17sm | 58:c8d90bb7404a | 48 | /** |
| el17sm | 58:c8d90bb7404a | 49 | * @brief increase _frame.count which increases _frame.number to animate snake |
| el17sm | 58:c8d90bb7404a | 50 | */ |
| el17sm | 56:ef9521b7ed78 | 51 | void increment_frame(); |
| el17sm | 32:fe6359ef9916 | 52 | }; |
| el17sm | 32:fe6359ef9916 | 53 | |
| el17sm | 33:4f3948dcd2f7 | 54 | const char sprite_headless[4][4][9][6] = { // Player [Face][SpriteAnimationFrame][Size_Y][Size_X] |
| el17sm | 32:fe6359ef9916 | 55 | { |
| el17sm | 32:fe6359ef9916 | 56 | // Up |
| el17sm | 32:fe6359ef9916 | 57 | { |
| el17sm | 32:fe6359ef9916 | 58 | {0,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 59 | {1,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 60 | {0,1,1,1,1,0,}, |
| el17sm | 32:fe6359ef9916 | 61 | {1,0,1,1,0,1,}, |
| el17sm | 32:fe6359ef9916 | 62 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 63 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 64 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 65 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 66 | {0,1,0,0,1,0,} |
| el17sm | 32:fe6359ef9916 | 67 | }, |
| el17sm | 32:fe6359ef9916 | 68 | { |
| el17sm | 32:fe6359ef9916 | 69 | {0,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 70 | {0,0,0,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 71 | {0,1,1,1,1,0,}, |
| el17sm | 32:fe6359ef9916 | 72 | {1,0,1,1,0,1,}, |
| el17sm | 32:fe6359ef9916 | 73 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 74 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 75 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 76 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 77 | {0,0,0,0,1,0,} |
| el17sm | 32:fe6359ef9916 | 78 | }, |
| el17sm | 32:fe6359ef9916 | 79 | { |
| el17sm | 32:fe6359ef9916 | 80 | {0,0,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 81 | {0,0,1,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 82 | {0,1,1,1,1,0,}, |
| el17sm | 32:fe6359ef9916 | 83 | {1,0,1,1,0,1,}, |
| el17sm | 32:fe6359ef9916 | 84 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 85 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 86 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 87 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 88 | {0,1,0,0,1,0,} |
| el17sm | 32:fe6359ef9916 | 89 | }, |
| el17sm | 32:fe6359ef9916 | 90 | { |
| el17sm | 32:fe6359ef9916 | 91 | {0,1,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 92 | {0,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 93 | {0,1,1,1,1,0,}, |
| el17sm | 32:fe6359ef9916 | 94 | {1,0,1,1,0,1,}, |
| el17sm | 32:fe6359ef9916 | 95 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 96 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 97 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 98 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 99 | {0,1,0,0,0,0,} |
| el17sm | 32:fe6359ef9916 | 100 | } |
| el17sm | 32:fe6359ef9916 | 101 | }, |
| el17sm | 32:fe6359ef9916 | 102 | { |
| el17sm | 32:fe6359ef9916 | 103 | // Right |
| el17sm | 32:fe6359ef9916 | 104 | { |
| el17sm | 32:fe6359ef9916 | 105 | {0,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 106 | {0,0,1,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 107 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 108 | {0,0,1,1,1,1,}, |
| el17sm | 32:fe6359ef9916 | 109 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 110 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 111 | {0,0,1,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 112 | {0,0,1,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 113 | {0,0,1,1,0,0,} |
| el17sm | 32:fe6359ef9916 | 114 | }, |
| el17sm | 32:fe6359ef9916 | 115 | { |
| el17sm | 32:fe6359ef9916 | 116 | {0,1,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 117 | {0,0,0,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 118 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 119 | {0,0,1,1,1,1,}, |
| el17sm | 32:fe6359ef9916 | 120 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 121 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 122 | {0,0,1,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 123 | {0,0,1,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 124 | {0,1,0,0,0,1,} |
| el17sm | 32:fe6359ef9916 | 125 | }, |
| el17sm | 32:fe6359ef9916 | 126 | { |
| el17sm | 32:fe6359ef9916 | 127 | {0,0,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 128 | {0,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 129 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 130 | {0,0,1,1,1,1,}, |
| el17sm | 32:fe6359ef9916 | 131 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 132 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 133 | {0,0,1,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 134 | {0,0,1,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 135 | {0,0,1,1,0,0,} |
| el17sm | 32:fe6359ef9916 | 136 | }, |
| el17sm | 32:fe6359ef9916 | 137 | { |
| el17sm | 32:fe6359ef9916 | 138 | {0,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 139 | {0,0,0,0,0,1,}, |
| el17sm | 32:fe6359ef9916 | 140 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 141 | {0,0,1,1,1,1,}, |
| el17sm | 32:fe6359ef9916 | 142 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 143 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 144 | {0,0,1,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 145 | {0,0,1,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 146 | {0,1,0,0,0,1,} |
| el17sm | 32:fe6359ef9916 | 147 | } |
| el17sm | 32:fe6359ef9916 | 148 | }, |
| el17sm | 32:fe6359ef9916 | 149 | { |
| el17sm | 32:fe6359ef9916 | 150 | // Down |
| el17sm | 32:fe6359ef9916 | 151 | { |
| el17sm | 32:fe6359ef9916 | 152 | {0,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 153 | {1,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 154 | {0,1,1,1,1,0,}, |
| el17sm | 32:fe6359ef9916 | 155 | {1,0,1,1,0,1,}, |
| el17sm | 32:fe6359ef9916 | 156 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 157 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 158 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 159 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 160 | {0,1,0,0,1,0,} |
| el17sm | 32:fe6359ef9916 | 161 | }, |
| el17sm | 32:fe6359ef9916 | 162 | { |
| el17sm | 32:fe6359ef9916 | 163 | {0,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 164 | {0,0,0,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 165 | {0,1,1,1,1,0,}, |
| el17sm | 32:fe6359ef9916 | 166 | {1,0,1,1,0,1,}, |
| el17sm | 32:fe6359ef9916 | 167 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 168 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 169 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 170 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 171 | {0,0,0,0,1,0,} |
| el17sm | 32:fe6359ef9916 | 172 | }, |
| el17sm | 32:fe6359ef9916 | 173 | { |
| el17sm | 32:fe6359ef9916 | 174 | {0,0,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 175 | {0,0,1,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 176 | {0,1,1,1,1,0,}, |
| el17sm | 32:fe6359ef9916 | 177 | {1,0,1,1,0,1,}, |
| el17sm | 32:fe6359ef9916 | 178 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 179 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 180 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 181 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 182 | {0,1,0,0,1,0,} |
| el17sm | 32:fe6359ef9916 | 183 | }, |
| el17sm | 32:fe6359ef9916 | 184 | { |
| el17sm | 32:fe6359ef9916 | 185 | {0,1,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 186 | {0,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 187 | {0,1,1,1,1,0,}, |
| el17sm | 32:fe6359ef9916 | 188 | {1,0,1,1,0,1,}, |
| el17sm | 32:fe6359ef9916 | 189 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 190 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 191 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 192 | {0,1,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 193 | {0,1,0,0,0,0,} |
| el17sm | 32:fe6359ef9916 | 194 | } |
| el17sm | 32:fe6359ef9916 | 195 | }, |
| el17sm | 32:fe6359ef9916 | 196 | { |
| el17sm | 32:fe6359ef9916 | 197 | // Left |
| el17sm | 32:fe6359ef9916 | 198 | { |
| el17sm | 32:fe6359ef9916 | 199 | {0,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 200 | {0,0,0,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 201 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 202 | {1,1,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 203 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 204 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 205 | {0,0,0,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 206 | {0,0,0,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 207 | {0,0,1,1,0,0,} |
| el17sm | 32:fe6359ef9916 | 208 | }, |
| el17sm | 32:fe6359ef9916 | 209 | { |
| el17sm | 32:fe6359ef9916 | 210 | {0,0,0,0,1,0,}, |
| el17sm | 32:fe6359ef9916 | 211 | {0,0,1,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 212 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 213 | {1,1,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 214 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 215 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 216 | {0,1,0,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 217 | {0,1,0,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 218 | {1,0,0,0,1,0,} |
| el17sm | 32:fe6359ef9916 | 219 | }, |
| el17sm | 32:fe6359ef9916 | 220 | { |
| el17sm | 32:fe6359ef9916 | 221 | {0,1,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 222 | {0,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 223 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 224 | {1,1,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 225 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 226 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 227 | {0,0,0,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 228 | {0,0,0,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 229 | {0,0,1,1,0,0,} |
| el17sm | 32:fe6359ef9916 | 230 | }, |
| el17sm | 32:fe6359ef9916 | 231 | { |
| el17sm | 32:fe6359ef9916 | 232 | {0,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 233 | {1,0,0,0,0,0,}, |
| el17sm | 32:fe6359ef9916 | 234 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 235 | {1,1,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 236 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 237 | {0,0,1,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 238 | {0,1,0,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 239 | {0,1,0,1,0,0,}, |
| el17sm | 32:fe6359ef9916 | 240 | {1,0,0,0,1,0,} |
| el17sm | 32:fe6359ef9916 | 241 | } |
| el17sm | 32:fe6359ef9916 | 242 | } |
| el17sm | 32:fe6359ef9916 | 243 | }; |
| el17sm | 32:fe6359ef9916 | 244 | |
| el17sm | 32:fe6359ef9916 | 245 | #endif |