aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoseph-Eugene Winzer <joewinzer@googlemail.com>2018-08-14 00:14:06 +0200
committerJoseph-Eugene Winzer <joewinzer@googlemail.com>2018-08-14 00:14:06 +0200
commit1cef8ea1bf814d9268f7769edfdcd5d7abda3ff8 (patch)
tree31313724a815fce9861cfa933c059250824b66fa /src
parent34493ed2313f3d249ee914ba77423a4882b2cd38 (diff)
downloadraylib-1cef8ea1bf814d9268f7769edfdcd5d7abda3ff8.tar.gz
raylib-1cef8ea1bf814d9268f7769edfdcd5d7abda3ff8.zip
Shapes: Simplifies CheckCollisionRecs
By comparing the edges of the rectangles relative to each other we can determine if they intersect or not.
Diffstat (limited to 'src')
-rw-r--r--src/shapes.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/shapes.c b/src/shapes.c
index 833f1613..acc0dc06 100644
--- a/src/shapes.c
+++ b/src/shapes.c
@@ -646,14 +646,11 @@ bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2
// Check collision between two rectangles
bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2)
{
- bool collision = false;
-
- float dx = (float)fabs((rec1.x + rec1.width/2) - (rec2.x + rec2.width/2));
- float dy = (float)fabs((rec1.y + rec1.height/2) - (rec2.y + rec2.height/2));
-
- if ((dx <= (rec1.width/2 + rec2.width/2)) && ((dy <= (rec1.height/2 + rec2.height/2)))) collision = true;
-
- return collision;
+ if ((rec1.x <= (rec2.x + rec2.width) && (rec1.x + rec1.width) >= rec2.x) &&
+ (rec1.y <= (rec2.y + rec2.height) && (rec1.y + rec1.height) >= rec2.y))
+ return true;
+ else
+ return false;
}
// Check collision between two circles