Jdeep
Jdeep

Reputation: 1195

Pygame Collision detection `colliderect()`

While going through the docs of pygame, there was a method of pygame called colliderect() that is used to test if two rect objects have overlapped.

colliderect() test if two rectangles overlap

colliderect(Rect) -> bool

Returns true if any portion of either rectangle overlap (except the top+bottom or left+right edges).

In the last line , it said except the top+bottom or left+right

What does this statement mean?

Upvotes: 1

Views: 538

Answers (1)

Rabbid76
Rabbid76

Reputation: 211278

It means that the rectangles r1 and r2:

r1 = pygame.Rect(0, 0, 10, 10)
r2 = pygame.Rect(10, 0, 10, 10)

are not colliding. r1.colliderect(r2) returns False, even though r1.left + r1.width is equal r2.right.

That is because the r1 covers the (x) region from 0 to 9 (inclusive) and r2 covers the (x) region from 10 to 19 (inclusive).

Upvotes: 2

Related Questions