Steven Mahasin / Mbed 2 deprecated DreamDungeon

Dependencies:   mbed MotionSensor

Committer:
el17sm
Date:
Wed Apr 24 23:56:32 2019 +0000
Revision:
17:99e533f7f2fb
Parent:
16:ddb203a74dfc
Child:
18:3c030560e31d
Snake half done

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