SDL SPOOKY PLATFORMER ENGINE  0.2.0
An implementation of a platformer using sdl, implemented using an entity component system and efficient collision management.
ColliderManager.hpp
Go to the documentation of this file.
1 #ifndef COLLIDER_MANAGER_HPP
2 #define COLLIDER_MANAGER_HPP
3 
4 #include "GameObject.hpp"
5 #include "TransformComponent.hpp"
6 #include "vector"
7 #include "assert.h"
8 #include "TinyMath.hpp"
9 #include "map"
10 #include "string"
11 
12 #include "ColliderComponent.hpp"
13 
15 {
16 public:
17  ColliderManager(ColliderManager const &) = delete;
18  void operator=(ColliderManager const &) = delete;
19 
20  static ColliderManager &instance();
21 
22  // map of obj1 check collision with all dese bois
23 
24  void AddObject(GameObject *obj, GameObject *collideWithObj);
25 
26  void Update(float deltaTime);
27 
28 private:
29  ColliderManager() = default;
30 
31  CollisionType Collide(std::pair<ColliderComponent *, TransformComponent *> myComponents, std::pair<ColliderComponent *, TransformComponent *> otherComponents);
32 
33  std::map<std::string, std::vector<ColliderInfo*>> collideWith;
34  std::map<std::string, ColliderInfo> objLookup;
35 };
36 
37 #endif
void Update(float deltaTime)
Definition: ColliderManager.cpp:40
Definition: GameObject.hpp:12
void AddObject(GameObject *obj, GameObject *collideWithObj)
Definition: ColliderManager.cpp:9
CollisionType
Definition: ColliderComponent.hpp:16
static ColliderManager & instance()
Definition: ColliderManager.cpp:3
void operator=(ColliderManager const &) = delete
don't allow assignment
Definition: ColliderManager.hpp:14