Documentation for C++/SDL 2.0 Tile Engine
Making a simple tile based engine
 All Classes Namespaces Functions Variables Enumerations
gameobject.h
1 #ifndef GAMEOBJECT_H
2 #define GAMEOBJECT_H
3 
4 #include "SDL.h"
5 #include "../externals/json/json.h"
6 #include "base.h"
7 #include "physics.h"
8 #include "map.h"
9 #include "image.h"
10 
12 
16 class GameObject{
17 public:
18  GameObject();
19  virtual ~GameObject() {};
21  virtual void Update() = 0;
26  virtual void Move(float deltaT) = 0;
31  virtual void Draw(Camera *cam = nullptr) = 0;
33  virtual void OnMouseDown();
35  virtual void OnMouseUp();
37  virtual void OnMouseEnter();
39  virtual void OnMouseExit();
45  virtual void CheckMouseOver(const Vector2f &pos);
47  bool GetMouseOver();
53  bool HasTag(std::string tag);
60  virtual Json::Value Save();
67  virtual void Load(Json::Value val);
72  void SetCollisionMap(CollisionMap map){
73  mPhysics.SetMap(map);
74  }
77  return mPhysics.Box();
78  }
79 
80 private:
82  GameObject(const GameObject &a);
83  GameObject& operator = (const GameObject &a);
84 
85 protected:
86  Image mImage;
90  std::string mTag;
91 
92 private:
93  bool mMouseOver;
94 };
95 
96 #endif