Hey yall, I’ve cooked up a spreadsheet to procedurally generate categoryBits and maskBits for a series of interacting physical objects, but I can’t seem to get the friendly bullets to collide with the enemies. All the other collisions seem to work just fine. Any ideas?
[lua]local avatarFilter = { categoryBits = 2, maskBits = 36 }
local enemyFilter = { categoryBits = 4, maskBits = 26 } --26 means 2 + 8 + 16, right?
local towerFilter = { categoryBits = 8, maskBits = 44 }
local friendlybulletFilter = { categoryBits = 16, maskBits = 4 }
local enemybulletFilter = { categoryBits = 32, maskBits = 10 }[/lua]
All the objects are physical and properly tagged with their collision filters in the addBody code.
Trimmed down bullet spawn code:
[lua]local function rezBullet( event )
local i = #allBullets + 1
local newBullet = {}
newBullet = display.newRect(avatarPosX, avatarPosY, 3, 20)
table.insert(allBullets, i, newBullet)
bulletGroup:insert( newBullet )
physics.addBody( newBullet, { density=3.0, friction=0.5, filter = friendlyBulletFilter, bounce=0.05 } )
newBullet.isBullet = true
end[/lua]
Trimmed down enemy spawn code:
[lua]for i = #allEnemies + 1, #allEnemies + 1 + enemyCounter do --create a block of enemy objects
local size = math.random(10,40)
newEnemy = {}
newEnemy = display.newCircle( 0.0 , 0.0, size)
table.insert(allEnemies, i, newEnemy)
enemyGroup:insert(newEnemy)
physics.addBody(newEnemy, { density = 3.0, friction = 0.5, filter = enemyFilter, bounce = 0.3 } )
end[/lua]
[import]uid: 13204 topic_id: 5401 reply_id: 305401[/import]