I'm working on a breakout clone and I've been trying to figure out how to get the intersection rect of two colliding rects so I can measure how deep the ball entered the block in both x and y axis and decide which component of the velocity I'll reverse.
I figured I could calculate the depth for each case like this:
But if I had the intersection rect than I woudn't have to worry if the ball hits the block from the left/right or top/bottom (since I would be only reversing the x and y axis respectively), thus saving me a lot of typing.
I've looked on Pygame's docs but seems it doesn't have a function for that. How would I go about solving this problem?
Assuming you have rectangles
r1
andr2
, with.left, .right, .top, and .bottom
edges, then(with the usual convention that coordinates increase top to bottom and left to right). Finally, check that
left<right
andtop<bottom
, and compute the area:Alternatively, you can use the
clip()
function. From the docs you linked in your question: