Steven Mahasin / Mbed 2 deprecated DreamDungeon

Dependencies:   mbed MotionSensor

Committer:
el17sm
Date:
Sat May 04 15:39:20 2019 +0000
Revision:
29:6b8411bb040a
Parent:
27:a1b41626f57c
added Room complete;; started Floor engine;; ; To do:; Floor generation;; More enemies;; Bosses;; Title Screen;; Score;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17sm 16:ddb203a74dfc 1 #ifndef SNAKE_H
el17sm 16:ddb203a74dfc 2 #define SNAKE_H
el17sm 16:ddb203a74dfc 3 #include "Entity.h"
el17sm 16:ddb203a74dfc 4
el17sm 22:7abf4581bc9b 5 class Snake : public Entity
el17sm 22:7abf4581bc9b 6 {
el17sm 22:7abf4581bc9b 7
el17sm 22:7abf4581bc9b 8 public:
el17sm 16:ddb203a74dfc 9 // Constructor
el17sm 16:ddb203a74dfc 10 Snake(float, float);
el17sm 22:7abf4581bc9b 11
el17sm 16:ddb203a74dfc 12 // Functions
el17sm 29:6b8411bb040a 13 virtual void move(float, float, int * map, bool * doorways);
el17sm 16:ddb203a74dfc 14 virtual int * get_frame();
el17sm 23:5a8f75e93508 15 virtual void take_damage(int);
el17sm 22:7abf4581bc9b 16
el17sm 22:7abf4581bc9b 17 private:
el17sm 17:99e533f7f2fb 18 // Member Function
el17sm 17:99e533f7f2fb 19 void update_prev_face();
el17sm 22:7abf4581bc9b 20
el17sm 17:99e533f7f2fb 21 // Member Mutator
el17sm 23:5a8f75e93508 22 void update_hitbox(int, int, int, int, int, int, int);
el17sm 22:7abf4581bc9b 23
el17sm 17:99e533f7f2fb 24 // Member Variable
el17sm 17:99e533f7f2fb 25 int _velocity_index;
el17sm 17:99e533f7f2fb 26 int _prev_face;
el17sm 22:7abf4581bc9b 27
el17sm 16:ddb203a74dfc 28 };
el17sm 16:ddb203a74dfc 29
el17sm 23:5a8f75e93508 30 const float velocity_pattern[6] = {0, 0.15, 0.25, 0.35, 0.25, -0.1};
el17sm 16:ddb203a74dfc 31
el17sm 17:99e533f7f2fb 32 const int sprite_snake_x[2][4][7][12] = { // Player [Face][SpriteAnimationFrame][Size_Y][Size_X]
el17sm 22:7abf4581bc9b 33 {
el17sm 22:7abf4581bc9b 34 // Right
el17sm 16:ddb203a74dfc 35 {
el17sm 17:99e533f7f2fb 36 {0,0,0,0,0,0,0,0,1,1,1,0,},
el17sm 17:99e533f7f2fb 37 {0,0,0,0,0,0,0,1,1,1,2,1,},
el17sm 17:99e533f7f2fb 38 {0,0,0,0,0,0,0,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 39 {0,0,0,0,0,0,0,1,1,1,0,0,},
el17sm 17:99e533f7f2fb 40 {0,0,0,0,0,0,0,0,1,1,1,0,},
el17sm 17:99e533f7f2fb 41 {0,0,1,1,1,1,0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 42 {1,1,1,0,1,1,1,1,1,1,0,0,},
el17sm 17:99e533f7f2fb 43 },
el17sm 17:99e533f7f2fb 44 {
el17sm 17:99e533f7f2fb 45 {0,0,0,0,0,0,0,0,1,1,1,0,},
el17sm 17:99e533f7f2fb 46 {0,0,0,0,0,0,0,1,1,1,2,1,},
el17sm 17:99e533f7f2fb 47 {0,0,0,0,0,0,0,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 48 {0,0,0,0,0,0,0,1,1,1,0,0,},
el17sm 17:99e533f7f2fb 49 {0,0,0,0,0,0,0,0,1,1,1,0,},
el17sm 17:99e533f7f2fb 50 {0,1,1,1,1,0,1,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 51 {1,0,0,1,1,1,1,1,1,1,0,0,},
el17sm 16:ddb203a74dfc 52 },
el17sm 16:ddb203a74dfc 53 {
el17sm 17:99e533f7f2fb 54 {0,0,0,0,0,0,0,0,1,1,1,0,},
el17sm 17:99e533f7f2fb 55 {0,0,0,0,0,0,0,1,1,1,2,1,},
el17sm 17:99e533f7f2fb 56 {0,0,0,0,0,0,0,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 57 {0,0,0,0,0,0,0,1,1,1,0,0,},
el17sm 17:99e533f7f2fb 58 {1,0,0,0,0,0,0,0,1,1,1,0,},
el17sm 17:99e533f7f2fb 59 {0,1,0,0,1,1,1,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 60 {0,0,1,1,1,0,1,1,1,1,0,0,},
el17sm 17:99e533f7f2fb 61 },
el17sm 17:99e533f7f2fb 62 {
el17sm 17:99e533f7f2fb 63 {0,0,0,0,0,0,0,0,1,1,1,0,},
el17sm 17:99e533f7f2fb 64 {0,0,0,0,0,0,0,1,1,1,2,1,},
el17sm 17:99e533f7f2fb 65 {0,0,0,0,0,0,0,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 66 {0,0,0,0,0,0,0,1,1,1,0,0,},
el17sm 17:99e533f7f2fb 67 {0,0,0,0,0,0,0,0,1,1,1,0,},
el17sm 17:99e533f7f2fb 68 {1,1,0,1,1,1,1,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 69 {0,0,1,1,0,1,1,1,1,1,0,0,},
el17sm 17:99e533f7f2fb 70 }
el17sm 17:99e533f7f2fb 71 },
el17sm 22:7abf4581bc9b 72 {
el17sm 22:7abf4581bc9b 73 // Left
el17sm 17:99e533f7f2fb 74 {
el17sm 17:99e533f7f2fb 75 {0,1,1,1,0,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 76 {1,2,1,1,1,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 77 {1,1,1,1,1,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 78 {0,0,1,1,1,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 79 {0,1,1,1,0,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 80 {0,1,1,1,1,0,1,1,1,1,0,0,},
el17sm 17:99e533f7f2fb 81 {0,0,1,1,1,1,1,1,0,1,1,1,},
el17sm 16:ddb203a74dfc 82 },
el17sm 16:ddb203a74dfc 83 {
el17sm 17:99e533f7f2fb 84 {0,1,1,1,0,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 85 {1,2,1,1,1,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 86 {1,1,1,1,1,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 87 {0,0,1,1,1,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 88 {0,1,1,1,0,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 89 {0,1,1,1,1,1,0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 90 {0,0,1,1,1,1,1,1,1,0,0,1,},
el17sm 17:99e533f7f2fb 91 },
el17sm 17:99e533f7f2fb 92 {
el17sm 17:99e533f7f2fb 93 {0,1,1,1,0,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 94 {1,2,1,1,1,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 95 {1,1,1,1,1,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 96 {0,0,1,1,1,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 97 {0,1,1,1,0,0,0,0,0,0,0,1,},
el17sm 17:99e533f7f2fb 98 {0,1,1,1,1,1,1,1,0,0,1,0,},
el17sm 17:99e533f7f2fb 99 {0,0,1,1,1,1,0,1,1,1,0,0,},
el17sm 16:ddb203a74dfc 100 },
el17sm 16:ddb203a74dfc 101 {
el17sm 17:99e533f7f2fb 102 {0,1,1,1,0,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 103 {1,2,1,1,1,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 104 {1,1,1,1,1,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 105 {0,0,1,1,1,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 106 {0,1,1,1,0,0,0,0,0,0,0,0,},
el17sm 17:99e533f7f2fb 107 {0,1,1,1,1,1,1,1,1,0,1,1,},
el17sm 17:99e533f7f2fb 108 {0,0,1,1,1,1,1,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 109 }
el17sm 17:99e533f7f2fb 110 }
el17sm 17:99e533f7f2fb 111 };
el17sm 17:99e533f7f2fb 112
el17sm 17:99e533f7f2fb 113 const int sprite_snake_y[2][6][12][6] = { // Player [Face][SpriteAnimationFrame][Size_Y][Size_X]
el17sm 22:7abf4581bc9b 114 {
el17sm 22:7abf4581bc9b 115 // Up
el17sm 17:99e533f7f2fb 116 {
el17sm 16:ddb203a74dfc 117 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 118 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 119 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 120 {0,1,1,1,1,0,},
el17sm 16:ddb203a74dfc 121 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 122 {0,1,1,1,0,0,},
el17sm 17:99e533f7f2fb 123 {0,1,1,0,0,0,},
el17sm 16:ddb203a74dfc 124 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 125 {0,0,0,1,1,0,},
el17sm 17:99e533f7f2fb 126 {0,0,0,1,1,0,},
el17sm 17:99e533f7f2fb 127 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 128 {0,1,0,0,0,0,},
el17sm 16:ddb203a74dfc 129 },
el17sm 16:ddb203a74dfc 130 {
el17sm 16:ddb203a74dfc 131 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 132 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 133 {1,1,1,1,1,1,},
el17sm 16:ddb203a74dfc 134 {0,1,1,1,1,0,},
el17sm 16:ddb203a74dfc 135 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 136 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 137 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 138 {0,1,1,0,0,0,},
el17sm 16:ddb203a74dfc 139 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 140 {0,0,0,1,1,0,},
el17sm 17:99e533f7f2fb 141 {0,0,0,0,1,0,},
el17sm 16:ddb203a74dfc 142 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 143 },
el17sm 16:ddb203a74dfc 144 {
el17sm 17:99e533f7f2fb 145 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 146 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 147 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 148 {0,1,1,1,1,0,},
el17sm 16:ddb203a74dfc 149 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 150 {0,0,0,1,1,0,},
el17sm 16:ddb203a74dfc 151 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 152 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 153 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 154 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 155 {0,0,0,0,1,0,},
el17sm 17:99e533f7f2fb 156 {0,0,0,1,0,0,},
el17sm 16:ddb203a74dfc 157 },
el17sm 16:ddb203a74dfc 158 {
el17sm 17:99e533f7f2fb 159 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 160 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 161 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 162 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 163 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 164 {0,0,1,1,1,0,},
el17sm 17:99e533f7f2fb 165 {0,0,0,1,1,0,},
el17sm 17:99e533f7f2fb 166 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 167 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 168 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 169 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 170 {0,0,0,0,1,0,},
el17sm 17:99e533f7f2fb 171 },
el17sm 17:99e533f7f2fb 172 {
el17sm 17:99e533f7f2fb 173 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 174 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 175 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 176 {0,1,1,1,1,0,},
el17sm 16:ddb203a74dfc 177 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 178 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 179 {0,0,0,1,1,0,},
el17sm 17:99e533f7f2fb 180 {0,0,0,1,1,0,},
el17sm 16:ddb203a74dfc 181 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 182 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 183 {0,1,0,0,0,0,},
el17sm 16:ddb203a74dfc 184 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 185 },
el17sm 16:ddb203a74dfc 186 {
el17sm 17:99e533f7f2fb 187 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 188 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 189 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 190 {0,1,1,1,1,0,},
el17sm 16:ddb203a74dfc 191 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 192 {0,1,1,0,0,0,},
el17sm 16:ddb203a74dfc 193 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 194 {0,0,0,1,1,0,},
el17sm 17:99e533f7f2fb 195 {0,0,0,1,1,0,},
el17sm 16:ddb203a74dfc 196 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 197 {0,1,0,0,0,0,},
el17sm 16:ddb203a74dfc 198 {0,0,1,0,0,0,},
el17sm 16:ddb203a74dfc 199 }
el17sm 16:ddb203a74dfc 200 },
el17sm 22:7abf4581bc9b 201 {
el17sm 22:7abf4581bc9b 202 // Down
el17sm 16:ddb203a74dfc 203 {
el17sm 17:99e533f7f2fb 204 {0,0,0,0,1,0,},
el17sm 17:99e533f7f2fb 205 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 206 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 207 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 208 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 209 {0,0,0,1,1,0,},
el17sm 16:ddb203a74dfc 210 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 211 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 212 {1,2,1,1,2,1,},
el17sm 17:99e533f7f2fb 213 {0,1,1,1,1,0,},
el17sm 16:ddb203a74dfc 214 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 215 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 216 },
el17sm 16:ddb203a74dfc 217 {
el17sm 17:99e533f7f2fb 218 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 219 {0,1,0,0,0,0,},
el17sm 17:99e533f7f2fb 220 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 221 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 222 {0,0,0,1,1,0,},
el17sm 17:99e533f7f2fb 223 {0,0,0,1,1,0,},
el17sm 16:ddb203a74dfc 224 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 225 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 226 {1,2,1,1,2,1,},
el17sm 17:99e533f7f2fb 227 {0,1,1,1,1,0,},
el17sm 16:ddb203a74dfc 228 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 229 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 230 },
el17sm 16:ddb203a74dfc 231 {
el17sm 17:99e533f7f2fb 232 {0,0,1,0,0,0,},
el17sm 16:ddb203a74dfc 233 {0,1,0,0,0,0,},
el17sm 17:99e533f7f2fb 234 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 235 {0,0,0,1,1,0,},
el17sm 17:99e533f7f2fb 236 {0,0,0,1,1,0,},
el17sm 17:99e533f7f2fb 237 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 238 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 239 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 240 {1,2,1,1,2,1,},
el17sm 17:99e533f7f2fb 241 {0,1,1,1,1,0,},
el17sm 16:ddb203a74dfc 242 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 243 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 244 },
el17sm 16:ddb203a74dfc 245 {
el17sm 16:ddb203a74dfc 246 {0,1,0,0,0,0,},
el17sm 17:99e533f7f2fb 247 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 248 {0,0,0,1,1,0,},
el17sm 17:99e533f7f2fb 249 {0,0,0,1,1,0,},
el17sm 17:99e533f7f2fb 250 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 251 {0,1,1,0,0,0,},
el17sm 16:ddb203a74dfc 252 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 253 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 254 {1,2,1,1,2,1,},
el17sm 17:99e533f7f2fb 255 {0,1,1,1,1,0,},
el17sm 16:ddb203a74dfc 256 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 257 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 258 },
el17sm 16:ddb203a74dfc 259 {
el17sm 16:ddb203a74dfc 260 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 261 {0,0,0,0,1,0,},
el17sm 17:99e533f7f2fb 262 {0,0,0,1,1,0,},
el17sm 16:ddb203a74dfc 263 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 264 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 265 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 266 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 267 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 268 {1,2,1,1,2,1,},
el17sm 17:99e533f7f2fb 269 {0,1,1,1,1,0,},
el17sm 16:ddb203a74dfc 270 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 271 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 272 },
el17sm 16:ddb203a74dfc 273 {
el17sm 17:99e533f7f2fb 274 {0,0,0,1,0,0,},
el17sm 17:99e533f7f2fb 275 {0,0,0,0,1,0,},
el17sm 16:ddb203a74dfc 276 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 277 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 278 {0,1,1,0,0,0,},
el17sm 17:99e533f7f2fb 279 {0,0,1,1,0,0,},
el17sm 17:99e533f7f2fb 280 {0,1,1,1,1,0,},
el17sm 17:99e533f7f2fb 281 {1,1,1,1,1,1,},
el17sm 17:99e533f7f2fb 282 {1,2,1,1,2,1,},
el17sm 17:99e533f7f2fb 283 {0,1,1,1,1,0,},
el17sm 16:ddb203a74dfc 284 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 285 {0,0,1,1,0,0,},
el17sm 16:ddb203a74dfc 286 }
el17sm 16:ddb203a74dfc 287 }
el17sm 16:ddb203a74dfc 288 };
el17sm 16:ddb203a74dfc 289
el17sm 16:ddb203a74dfc 290 #endif