Space Fighter
A "shmup" game for Computer Programming C++
Loading...
Searching...
No Matches
CollisionManager.h
Go to the documentation of this file.
1
2#pragma once
3
4#include "GameObject.h"
5
6typedef void(*OnCollision)(GameObject *pGameObject1, GameObject *pGameObject2);
7
10{
11
12public:
13
16 virtual ~CollisionManager() { }
17
23 virtual void AddCollisionType(const CollisionType type1, const CollisionType type2, OnCollision callback);
24
29 virtual void AddNonCollisionType(const CollisionType type1, const CollisionType type2);
30
34 virtual void CheckCollision(GameObject *pGameObject1, GameObject *pGameObject2);
35
36
37private:
38
39 struct NonCollision
40 {
41 CollisionType Type1;
42 CollisionType Type2;
43 };
44
45 struct Collision
46 {
47 CollisionType Type1;
48 CollisionType Type2;
49 OnCollision Callback = nullptr;
50 };
51
52 std::vector<NonCollision> m_nonCollisions;
53 std::vector<NonCollision>::iterator m_nonCollisionIt;
54
55 std::vector<Collision> m_collisions;
56 std::vector<Collision>::iterator m_collisionIt;
57
58};
void(* OnCollision)(GameObject *pGameObject1, GameObject *pGameObject2)
Represents a collision manager that can be used to manage collisions between game objects.
virtual void CheckCollision(GameObject *pGameObject1, GameObject *pGameObject2)
Check for collisions between game objects.
virtual void AddNonCollisionType(const CollisionType type1, const CollisionType type2)
Add a non-collision type to the manager.
virtual void AddCollisionType(const CollisionType type1, const CollisionType type2, OnCollision callback)
Add a collision type to the manager.
CollisionManager()
Instantiate a collision manager.
virtual ~CollisionManager()
Represents a type of collision.
Represents a game object in the game. This is the base class for all objects that can be updated,...
Definition GameObject.h:15