Tests circle-rectangle collision (closest point method, handles corners/edges, exact test).
Takes circleX,circleY (circle center, integers), radius (circle radius pixels, integer), rectX,rectY (rectangle top-left, integers), rectWidth,rectHeight (rectangle dimensions pixels, integers).
Returns 1 if colliding, 0 if not.
2D Overlay
Parameters & Returns
Parameters
circleXInt
circleYInt
radiusInt
rectXInt
rectYInt
rectWidthInt
rectHeightInt
Returns
Int
Quick Summary
Tests circle-rectangle collision (closest point method, handles corners/edges, exact test).
Takes circleX,circleY (circle center, integers), radius (circle radius pixels, integer), rectX,rectY (rectangle top-left, integers), rectWidth,rectHeight (rectangle dimensions pixels, integers).
Returns 1 if colliding, 0 if not.
Technical Exegesis...
Tests circle-rectangle collision (closest point method, handles corners/edges, exact test). Takes circleX,circleY (circle center, integers), radius (circle radius pixels, integer), rectX,rectY (rectangle top-left, integers), rectWidth,rectHeight (rectangle dimensions pixels, integers). Returns 1 if colliding, 0 if not.
Tests circle-rectangle collision (closest point method, handles corners/edges, exact test). Takes circleX,circleY (circle center, integers), radius (circle radius pixels, integer), rectX,rectY (rectangle top-left, integers), rectWidth,rectHeight (rectangle dimensions pixels, integers). Returns 1 if colliding, 0 if not. Finds closest point on rectangle to circle center (clamps circle center to rect bounds), calculates distance from circle center to closest point (dx,dy), tests if distance <= radius (distance^2 <= radius^2). Handles all cases: circle overlaps edge (closest point on edge), circle hits corner (closest point is corner), circle inside rect (closest point = circle center, distance=0). Use for player-wall collision, projectile-box hit detection, trigger zones (circular area vs rectangular bounds). Algorithm: clamp circleX to [rectX, rectX+rectWidth], clamp circleY to [rectY, rectY+rectHeight], compute distance^2 from circle center to clamped point, collision if distance^2 <= radius^2. Use cases: (1) Wall collision (If b2dIsCircleBoxColliding(playerX,playerY,16, wallX,wallY,wallW,wallH) Then blocked), (2) Trigger zone (If b2dIsCircleBoxColliding(explosionX,explosionY,radius, targetX,targetY,targetW,targetH) Then inRange), (3) Circular projectile (If b2dIsCircleBoxColliding(bulletX,bulletY,5, boxX,boxY,boxW,boxH) Then hitBox). Performance: cost low (~10 integer ops, ~0.0001ms), no sqrt (uses distance^2 comparison), efficient for gameplay collision. Handles corners correctly (circle can collide with rectangle corner beyond edges). Related: b2dIsCirclesColliding (circle-circle), b2dIsBoxesColliding (AABB test faster for rectangles), b2dIsImagesColliding (pixel-perfect).