diff options
Diffstat (limited to 'src/rectanglecollider.cpp')
-rw-r--r-- | src/rectanglecollider.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/rectanglecollider.cpp b/src/rectanglecollider.cpp new file mode 100644 index 00000000..812b10d1 --- /dev/null +++ b/src/rectanglecollider.cpp @@ -0,0 +1,24 @@ +#include "Physics/rectanglecollider.hpp" + +namespace yage +{ + +RectangleCollider::RectangleCollider(const glm::vec2 &position, const glm::vec2 &size) : + Collider(position, size) +{} + +bool RectangleCollider::collides(const Collider &collider) const +{ + for(int i=position_.x; i<position_.x+size_.x; ++i) + for(int j=position_.y; j<position_.y+size_.y; ++j) + return collider.inside(glm::vec2(i, j)); + return false; +} + +inline bool RectangleCollider::inside(const glm::vec2 &point) const +{ + return position_.x<point.x && position_.x+size_.x>point.x && + position_.y<point.y && position_.y+size_.y>point.y; +} + +} // yage |