Is there an API command to check if two regions are touching??

03-12-2002, 04:28 PM
Is there an API command to check if two regions are touching??

ie there are two regions and they are overlapping...

03-12-2002, 04:42 PM
No, but you can be clever ;)

Lets say we have 2 objects defined by Region A and Region B

Use GetRgnBox to grab RECTs for each region
IntersectRect the 2 rectangles.
If they dont intersect then finish, they do not collide
If they do intersect then:

Use CombineRgn on A and B with the XOR flag, and store it (call it Region Z for now)
Use CombineRgn on A and B with the OR flag, and store it (call it Region X)
Use EqualRgn on Regions X and Z to see if they are identical. If they are identical, then the regions are not touching. However, if they prove to be different, then a collision has occured


03-12-2002, 04:57 PM
so is this what region x and z would look like?

03-12-2002, 05:05 PM
Thats what they'd look like? I don't get it.... :confused:

Btw, nice idea Squirmy! :)

03-12-2002, 05:06 PM

03-12-2002, 05:33 PM
Correct, andrew. And because they are different, it means the regions are touching.


03-12-2002, 05:35 PM
Note: the use of regions is pointless if they are all rectangular, in that case use RECTs instead.

03-23-2002, 07:12 PM
ok here my program, i cant get your collision detection working for some reason squirm

03-23-2002, 08:12 PM
If one of the regions is rectangular, you could use the RectInRgn API function....

03-24-2002, 06:38 AM
the regions points are every where
so not like a rectangle

heres an update of my program
im trying to make 2 new regions by combining the ship rgn and the terrain rgn, and the i am tryin to fill them in with colour so i could see them and also if the ship moves into the land it to output some text in the me.caption

but nothing is happening so heres the game

EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum