I'm developing a simple game engine for practise purpose, and I used codes like this to do collision detection (fake code):
bool PhysicalObject.isCollideWith(rect: PhysicalObject) =>
x + width >= rect.x && rect.y <= y + height &&
x <= rect.x + rect.width &&
y <= rect.y + rect.height
But this treats all objects as a rectangle.
What I want is to detect collision when two objects are overlapping on pixel level (I used java.awt.Graphics
to draw my game objects).
What's the best way of doing that? Can I create a two-dimension array that represent each pixel and store the pointer to the game object that the corresponding pixel belongs to?