Basic - Confusion with collision detection between squares

Heyy, I have a game where the user controls one square but I want to collect collision with another square. I know the basic layout for doing this, However, I always get my more than and less than and + and - mixed up thus i was wondering if anyone could correct them for me ?

Code:

if (character.y > collectTwo.y && character.y + characterWidth < collectTwo.x + 10)

if (character.x > collectTwo.x && character.x + characterWidth < collectTwo.x-10)

This size of the collectTwo item is 10 x 10.

Thank you so much!!

Re: Basic - Confusion with collision detection between squares

Quote:

I always get my more than and less than and + and - mixed up

Me too! Especially in multiple dimensions and with the computer's coordinate system being upside down. I find it easiest to think logically.

Two 1-d line segments will interest iff the max of their left hand ends < the min of their right hand ends. (*) For rectangles this condition must hold in both dimensions simultaneously if they intersect, and for "upright" rectangles the joint condition is sufficient.

(*) But I've slipped into geometry with "left" and "right". This is reasonable in your case, I think. But what I really mean is given segments a_1->a_2 and b_1->b_2 that max(min(a_1,a_2),min(b_1,b_2)) < min(max(a_1,a_2),max(b_1,b_2))

Re: Basic - Confusion with collision detection between squares

How about:

Code:

`if ( Math.abs(a.x - b.x) < (a.width() + b.width())/2 &&`

Math.abs(a.y - b.y) < (a.height() + b.height())/2 )

I made it completly up so I did not test it, so be careful. ;)