mirror of
https://github.com/GeekJoystick/game-and-watch-game-engine.git
synced 2025-12-17 01:16:10 +01:00
55 lines
1.1 KiB
C++
55 lines
1.1 KiB
C++
#ifndef ENTITY_H
|
|
#define ENTITY_H
|
|
#include <stdint.h>
|
|
#include "Vector2.h"
|
|
#include "Transform.h"
|
|
#include "KeyState.h"
|
|
#include "Sprite.h"
|
|
#include "SpriteManager.h"
|
|
#include "Renderer.h"
|
|
|
|
class EntityManager;
|
|
class Entity {
|
|
protected:
|
|
Transform transform;
|
|
bool flipX, flipY;
|
|
uint16_t spriteID;
|
|
const char* tag = "None";
|
|
public:
|
|
Entity(Vector2 _pos) {
|
|
transform.pos = _pos;
|
|
transform.size = {8, 8};
|
|
spriteID = 0;
|
|
flipX = false;
|
|
flipY = false;
|
|
}
|
|
|
|
/**
|
|
* Returns a pointer to the Entity's Transform
|
|
*/
|
|
Transform* GetTransform() {
|
|
return &transform;
|
|
}
|
|
|
|
/**
|
|
* Returns a the Entity's tag
|
|
*/
|
|
const char* Tag() {
|
|
return tag;
|
|
}
|
|
|
|
virtual void Events(KeyState buttons) {
|
|
|
|
}
|
|
|
|
virtual void Update(EntityManager* entityManager) {
|
|
|
|
}
|
|
|
|
virtual void Draw(Renderer* renderer) {
|
|
Sprite* sprite = SpriteManager::GetInstance()->GetSprite(spriteID);
|
|
renderer->DrawSprite(sprite, transform.pos.x, transform.pos.y, transform.scale, flipX, flipY);
|
|
}
|
|
};
|
|
|
|
#endif |