Documentation for C++/SDL 2.0 Tile Engine
Making a simple tile based engine
 All Classes Namespaces Functions Variables Enumerations
gameobjectmanager.h
1 #ifndef GAMEOBJECTMANAGER_H
2 #define GAMEOBJECTMANAGER_H
3 
4 #include <vector>
5 #include <memory>
6 #include "../externals/json/json.h"
7 #include "gameobject.h"
8 #include "map.h"
9 #include "camera.h"
10 
12 typedef std::vector<std::shared_ptr<GameObject>> GameObjectList;
13 
15 
20 public:
24  virtual void Draw();
26  virtual void Update();
31  virtual void Move(float deltaT);
36  void SetCollisionMaps(Map *map);
41  void Register(std::shared_ptr<GameObject> obj);
47  void Register(std::shared_ptr<Camera> camera);
51  virtual void CheckMouseEvents();
57  virtual void HandleMouseEvent(const SDL_MouseButtonEvent &mouseEvent);
62  virtual void HandleMouseEvent(const SDL_MouseMotionEvent &mouseEvent);
67  Json::Value Save();
68 
69 private:
76  CollisionMap GetEntityCollisionMap(const Rectf &target, int distance = 2 * TILE_WIDTH);
77 
78 protected:
80  GameObjectList mGameObjects;
81  std::shared_ptr<Camera> mCamera;
82 };
83 
84 #endif