Why would I use collision solids instead of bitmasks?

Bitmasks are easier to implement than collision solids, so what are the advantages of using collision solids instead of bitmasks?

It isn’t really a matter of either one or the other, I believe: bitmasks aren’t an alternative to collision solids, but instead are a means of determining which collision solids interact with which other collision solids.

Simply put: bitmasks can be thought of as “tags” that are applied to collision solids. When two collision solids are considered for collision, the “tags” are checked. If they match, the collision is processed; if not, the collision is ignored.

(This isn’t perfectly accurate, please note–it’s just a simplification to convey in broad terms the relationship between bitmasks and collision solids.

A more-accurate description might be that bitmasks are patterns, and that collisions between two solids are processed if there’s overlap between the pattern on one solid overlaps with the pattern on the other solid, if I recall correctly.)

Collision Solids Collision BitMasks
Collision Solids are things that determine a collision detected between to objects. If the solids collide, then the objects are "apparently" colliding. Collision BitMasks are the things that that operate "before" the collision event. What BtMasks do is that they check the bits of 2 objects. So when an object collides, it checks both the object's bits. If the bits' difference is 0, it is said that the objects have collided, and a Panda Event has generated. But, if the difference is other than zero, regardless of the CollisionSolids colliding, there is no collision or Panda Event.