add GetAabbBox GetCircleBox

This commit is contained in:
aozhiwei 2019-06-07 21:07:17 +08:00
parent 2b119145c7
commit d1d5820e88
2 changed files with 17 additions and 0 deletions

View File

@ -29,6 +29,19 @@ ColliderComponent* Entity::GetBoxBound()
return collider; return collider;
} }
void Entity::GetAabbBox(AabbCollider& aabb_box)
{
aabb_box.active = true;
aabb_box.owner = this;
}
void Entity::GetCircleBox(CircleCollider& circle_box)
{
circle_box.active = true;
circle_box.owner = this;
circle_box.rad = 1;
}
bool Entity::TestCollision(Entity* b) bool Entity::TestCollision(Entity* b)
{ {
for (auto& a_collider : colliders) { for (auto& a_collider : colliders) {

View File

@ -38,6 +38,8 @@ enum EntitySubType_e
class Room; class Room;
class Obstacle; class Obstacle;
class ColliderComponent; class ColliderComponent;
class AabbCollider;
class CircleCollider;
class Entity class Entity
{ {
public: public:
@ -64,6 +66,8 @@ class Entity
virtual void FillMFObjectFull(cs::MFObjectFull* full_data) {}; virtual void FillMFObjectFull(cs::MFObjectFull* full_data) {};
virtual float GetSpeed() { return 1.0f;}; virtual float GetSpeed() { return 1.0f;};
virtual ColliderComponent* GetBoxBound(); virtual ColliderComponent* GetBoxBound();
virtual void GetAabbBox(AabbCollider& aabb_box);
virtual void GetCircleBox(CircleCollider& circle_box);
bool TestCollision(Entity* b); bool TestCollision(Entity* b);
void ClearColliders(); void ClearColliders();
void FindLocationWithTarget(Entity* target); void FindLocationWithTarget(Entity* target);