aozhiwei cce493f454 1
2019-03-27 14:56:15 +08:00

47 lines
894 B
C++

#include "precompile.h"
#include "entity.h"
#include "collider.h"
Entity::~Entity()
{
ClearColliders();
}
bool Entity::TestCollision(Entity* b)
{
for (auto& a_collider : colliders) {
for (auto& b_collider : b->colliders) {
if (a_collider->Intersect(b_collider)) {
return true;
}
}
}
return false;
}
void Entity::ClearColliders()
{
for (auto& itr : colliders) {
ColliderComponent* collider = itr;
switch (collider->type) {
case CT_Aabb:
{
delete (AabbCollider*)collider;
}
break;
case CT_Circle:
{
delete (CircleCollider*)collider;
}
break;
default:
{
delete collider;
}
break;
}
}
colliders.clear();
}