Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
362 Chapter 15 Collision Detection if (testY < aRect.origin.y) testY = aRect.origin.y; if (testY > (aRect.origin.y + aRect.size.height)) testY = (aRect.origin.y + aRect.size.height); return ((aCircle.x - testX) * (aCircle.x - testX) + (aCircle.y - testY) * (aCircle.y - testY)) < aCircle.radius * aCircle.radius; } If you were using circles for all entities, you would need to also handle collisions between circles. Listing 15.3 shows a function that checks for intersections between circles. Listing 15.3 Circle-to-Circle Collision Detection Function static inline BOOL CircleIntersectsCircle(Circle aCircle1, Circle aCircle2) { float dx = aCircle2.x - aCircle1.x; float dy = aCircle2.y - aCircle1.y; float radii = aCircle1.radius + aCircle2.radius; return ((dx * dx) + (dy * dy)) < radii * radii; }