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.h
- Committer:
- el17sm
- Date:
- 2019-04-20
- Revision:
- 7:4aaa37a711a1
- Parent:
- 6:104c2506237e
- Child:
- 8:27244a0c3414
File content as of revision 7:4aaa37a711a1:
#ifndef ENTITY_H
#define ENTITY_H
#include "sprites.h"
#include "math.h"
class Entity
{
protected:
bool moving;
struct Hitbox {
int width;
int height;
};
Hitbox hitbox;
struct SpriteSize {
int width;
int height;
// Top-left corner of sprite is offset_x
// to the right of top-left corner of hitbox
int offset_x;
// Top-left corner of sprite is offset_y
// above of top-left corner of hitbox
int offset_y;
};
SpriteSize sprite_size;
struct Position {
float x;
float y;
};
Position position;
int hp;
int face;
public:
// Functions
virtual void move(float mapped_x, float mapped_y) = 0;
bool matrix_collision_test(float pos_x, float pos_y, int map_no){
for (int j = pos_y; j < (int)pos_y + hitbox.height; j++){
for(int i = pos_x; i < (int)pos_x + hitbox.width; i++){
if ((j>=48) || (i>=84) || (j<0) || (i<0)) {}
else if ((level_map[0][j][i] == 1)) {
return true;
}
}
}
return false;
}
// Accessors
bool get_moving();
int get_face();
int get_sprite_width();
int get_sprite_height();
int get_offset_x();
int get_offset_y();
int get_pos_x();
int get_pos_y();
};
#endif