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/Snake/Snake.h
- Committer:
- el17sm
- Date:
- 2019-04-24
- Revision:
- 17:99e533f7f2fb
- Parent:
- 16:ddb203a74dfc
- Child:
- 18:3c030560e31d
File content as of revision 17:99e533f7f2fb:
#ifndef SNAKE_H
#define SNAKE_H
#include "Entity.h"
class Snake : public Entity {
public:
// Constructor
Snake(float, float);
// Functions
virtual void move(float, float);
virtual int * get_frame();
private:
// Member Function
void update_prev_face();
// Member Mutator
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);
// Member Variable
int _velocity_index;
int _prev_face;
};
const float velocity_pattern[6] = {0, 0.3, 0.5, 0.7, 0.5, -0.2};
const int sprite_snake_x[2][4][7][12] = { // Player [Face][SpriteAnimationFrame][Size_Y][Size_X]
{ // Right
{
{0,0,0,0,0,0,0,0,1,1,1,0,},
{0,0,0,0,0,0,0,1,1,1,2,1,},
{0,0,0,0,0,0,0,1,1,1,1,1,},
{0,0,0,0,0,0,0,1,1,1,0,0,},
{0,0,0,0,0,0,0,0,1,1,1,0,},
{0,0,1,1,1,1,0,1,1,1,1,0,},
{1,1,1,0,1,1,1,1,1,1,0,0,},
},
{
{0,0,0,0,0,0,0,0,1,1,1,0,},
{0,0,0,0,0,0,0,1,1,1,2,1,},
{0,0,0,0,0,0,0,1,1,1,1,1,},
{0,0,0,0,0,0,0,1,1,1,0,0,},
{0,0,0,0,0,0,0,0,1,1,1,0,},
{0,1,1,1,1,0,1,1,1,1,1,0,},
{1,0,0,1,1,1,1,1,1,1,0,0,},
},
{
{0,0,0,0,0,0,0,0,1,1,1,0,},
{0,0,0,0,0,0,0,1,1,1,2,1,},
{0,0,0,0,0,0,0,1,1,1,1,1,},
{0,0,0,0,0,0,0,1,1,1,0,0,},
{1,0,0,0,0,0,0,0,1,1,1,0,},
{0,1,0,0,1,1,1,1,1,1,1,0,},
{0,0,1,1,1,0,1,1,1,1,0,0,},
},
{
{0,0,0,0,0,0,0,0,1,1,1,0,},
{0,0,0,0,0,0,0,1,1,1,2,1,},
{0,0,0,0,0,0,0,1,1,1,1,1,},
{0,0,0,0,0,0,0,1,1,1,0,0,},
{0,0,0,0,0,0,0,0,1,1,1,0,},
{1,1,0,1,1,1,1,1,1,1,1,0,},
{0,0,1,1,0,1,1,1,1,1,0,0,},
}
},
{ // Left
{
{0,1,1,1,0,0,0,0,0,0,0,0,},
{1,2,1,1,1,0,0,0,0,0,0,0,},
{1,1,1,1,1,0,0,0,0,0,0,0,},
{0,0,1,1,1,0,0,0,0,0,0,0,},
{0,1,1,1,0,0,0,0,0,0,0,0,},
{0,1,1,1,1,0,1,1,1,1,0,0,},
{0,0,1,1,1,1,1,1,0,1,1,1,},
},
{
{0,1,1,1,0,0,0,0,0,0,0,0,},
{1,2,1,1,1,0,0,0,0,0,0,0,},
{1,1,1,1,1,0,0,0,0,0,0,0,},
{0,0,1,1,1,0,0,0,0,0,0,0,},
{0,1,1,1,0,0,0,0,0,0,0,0,},
{0,1,1,1,1,1,0,1,1,1,1,0,},
{0,0,1,1,1,1,1,1,1,0,0,1,},
},
{
{0,1,1,1,0,0,0,0,0,0,0,0,},
{1,2,1,1,1,0,0,0,0,0,0,0,},
{1,1,1,1,1,0,0,0,0,0,0,0,},
{0,0,1,1,1,0,0,0,0,0,0,0,},
{0,1,1,1,0,0,0,0,0,0,0,1,},
{0,1,1,1,1,1,1,1,0,0,1,0,},
{0,0,1,1,1,1,0,1,1,1,0,0,},
},
{
{0,1,1,1,0,0,0,0,0,0,0,0,},
{1,2,1,1,1,0,0,0,0,0,0,0,},
{1,1,1,1,1,0,0,0,0,0,0,0,},
{0,0,1,1,1,0,0,0,0,0,0,0,},
{0,1,1,1,0,0,0,0,0,0,0,0,},
{0,1,1,1,1,1,1,1,1,0,1,1,},
{0,0,1,1,1,1,1,0,1,1,0,0,},
}
}
};
const int sprite_snake_y[2][6][12][6] = { // Player [Face][SpriteAnimationFrame][Size_Y][Size_X]
{ // Up
{
{0,1,1,1,1,0,},
{1,1,1,1,1,1,},
{1,1,1,1,1,1,},
{0,1,1,1,1,0,},
{0,0,1,1,0,0,},
{0,1,1,1,0,0,},
{0,1,1,0,0,0,},
{0,0,1,1,0,0,},
{0,0,0,1,1,0,},
{0,0,0,1,1,0,},
{0,0,1,1,0,0,},
{0,1,0,0,0,0,},
},
{
{0,1,1,1,1,0,},
{1,1,1,1,1,1,},
{1,1,1,1,1,1,},
{0,1,1,1,1,0,},
{0,0,1,1,0,0,},
{0,0,1,1,0,0,},
{0,1,1,0,0,0,},
{0,1,1,0,0,0,},
{0,0,1,1,0,0,},
{0,0,0,1,1,0,},
{0,0,0,0,1,0,},
{0,0,1,1,0,0,},
},
{
{0,1,1,1,1,0,},
{1,1,1,1,1,1,},
{1,1,1,1,1,1,},
{0,1,1,1,1,0,},
{0,0,1,1,0,0,},
{0,0,0,1,1,0,},
{0,0,1,1,0,0,},
{0,1,1,0,0,0,},
{0,1,1,0,0,0,},
{0,0,1,1,0,0,},
{0,0,0,0,1,0,},
{0,0,0,1,0,0,},
},
{
{0,1,1,1,1,0,},
{1,1,1,1,1,1,},
{1,1,1,1,1,1,},
{0,1,1,1,1,0,},
{0,0,1,1,0,0,},
{0,0,1,1,1,0,},
{0,0,0,1,1,0,},
{0,0,1,1,0,0,},
{0,1,1,0,0,0,},
{0,1,1,0,0,0,},
{0,0,1,1,0,0,},
{0,0,0,0,1,0,},
},
{
{0,1,1,1,1,0,},
{1,1,1,1,1,1,},
{1,1,1,1,1,1,},
{0,1,1,1,1,0,},
{0,0,1,1,0,0,},
{0,0,1,1,0,0,},
{0,0,0,1,1,0,},
{0,0,0,1,1,0,},
{0,0,1,1,0,0,},
{0,1,1,0,0,0,},
{0,1,0,0,0,0,},
{0,0,1,1,0,0,},
},
{
{0,1,1,1,1,0,},
{1,1,1,1,1,1,},
{1,1,1,1,1,1,},
{0,1,1,1,1,0,},
{0,0,1,1,0,0,},
{0,1,1,0,0,0,},
{0,0,1,1,0,0,},
{0,0,0,1,1,0,},
{0,0,0,1,1,0,},
{0,0,1,1,0,0,},
{0,1,0,0,0,0,},
{0,0,1,0,0,0,},
}
},
{ // Down
{
{0,0,0,0,1,0,},
{0,0,1,1,0,0,},
{0,1,1,0,0,0,},
{0,1,1,0,0,0,},
{0,0,1,1,0,0,},
{0,0,0,1,1,0,},
{0,1,1,1,1,0,},
{1,1,1,1,1,1,},
{1,2,1,1,2,1,},
{0,1,1,1,1,0,},
{0,0,1,1,0,0,},
{0,0,1,1,0,0,},
},
{
{0,0,1,1,0,0,},
{0,1,0,0,0,0,},
{0,1,1,0,0,0,},
{0,0,1,1,0,0,},
{0,0,0,1,1,0,},
{0,0,0,1,1,0,},
{0,1,1,1,1,0,},
{1,1,1,1,1,1,},
{1,2,1,1,2,1,},
{0,1,1,1,1,0,},
{0,0,1,1,0,0,},
{0,0,1,1,0,0,},
},
{
{0,0,1,0,0,0,},
{0,1,0,0,0,0,},
{0,0,1,1,0,0,},
{0,0,0,1,1,0,},
{0,0,0,1,1,0,},
{0,0,1,1,0,0,},
{0,1,1,1,1,0,},
{1,1,1,1,1,1,},
{1,2,1,1,2,1,},
{0,1,1,1,1,0,},
{0,0,1,1,0,0,},
{0,0,1,1,0,0,},
},
{
{0,1,0,0,0,0,},
{0,0,1,1,0,0,},
{0,0,0,1,1,0,},
{0,0,0,1,1,0,},
{0,0,1,1,0,0,},
{0,1,1,0,0,0,},
{0,1,1,1,1,0,},
{1,1,1,1,1,1,},
{1,2,1,1,2,1,},
{0,1,1,1,1,0,},
{0,0,1,1,0,0,},
{0,0,1,1,0,0,},
},
{
{0,0,1,1,0,0,},
{0,0,0,0,1,0,},
{0,0,0,1,1,0,},
{0,0,1,1,0,0,},
{0,1,1,0,0,0,},
{0,1,1,0,0,0,},
{0,1,1,1,1,0,},
{1,1,1,1,1,1,},
{1,2,1,1,2,1,},
{0,1,1,1,1,0,},
{0,0,1,1,0,0,},
{0,0,1,1,0,0,},
},
{
{0,0,0,1,0,0,},
{0,0,0,0,1,0,},
{0,0,1,1,0,0,},
{0,1,1,0,0,0,},
{0,1,1,0,0,0,},
{0,0,1,1,0,0,},
{0,1,1,1,1,0,},
{1,1,1,1,1,1,},
{1,2,1,1,2,1,},
{0,1,1,1,1,0,},
{0,0,1,1,0,0,},
{0,0,1,1,0,0,},
}
}
};
#endif