Physics Collision Library

To help with the calculation of physics collision categories and masks there is an excellent table available:

If you would rather use names for your categories and have the masks generated for you, you can use this library.

It's simple: Just think of a category name for each object you have and create masks for all the objects to collide with.

This Gist includes the collisionslib.lua and a modified main.lua for the "CollisionFilter" sample from the Corona SDK samples directory.

To use the library:
local collisionslib = require("collisionslib")

To create a filter mask:
local redCollisionFilter = { categoryBits = collisionslib.getCategory("red"), maskBits = collisionslib.getMask("border","red") }

  • getCategory() takes the name of your object
  • getMask() takes the names of the other objects which your first object collides with