Steven Mahasin / Mbed 2 deprecated DreamDungeon

Dependencies:   mbed MotionSensor

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?

UserRevisionLine numberNew 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