Steven Mahasin / Mbed 2 deprecated DreamDungeon

Dependencies:   mbed MotionSensor

Committer:
el17sm
Date:
Tue May 07 01:11:07 2019 +0000
Revision:
36:92d131695e7c
Parent:
34:1d5b4da3935e
Child:
54:03ddad11d202
Boss Skull Done

Who changed what in which revision?

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