Collision filtering
When we want two objects to pass each other, we can define them as never colliding with each other or even never colliding with anything. This is done by collision filtering. Each fixture can have the following three parameters defined:
Its own category
Other categories that it collides with
Whether or not to collide with bodies in a specific group
When creating a FixtureDef
object, there is a constructor that allows us to specify all the parameters:
FixtureDef fixture = PhysicsFactory.createFixtureDef(density, elasticity, friction, sensor, category, categoryMask, groupIndex);
Category is a number of the type short
. This means that it is 16 bits long, and therefore, there are 16 categories. The other two parameters are of the type short
as well.
Category
A fixture should belong to a single category only and will collide with every fixture in a category specified in category mask. A category has a number from 0 to 15. A fixture's category or categories are then specified by...