hi, here above it’s my worksheet of my collision filter. Always works exept the bonusCollisionFilter
my bonus pass through my floor i don’t know why?
here below my snippet :
local physics = require("physics") local myGroupBonus = display.newGroup() --COLLISION FILTER--------------------------------- local bonusCollisionFilter = { categoryBits=16, maskBits=7 } local floorCollisionFilter = { categoryBits=4, maskBits=3 } local enemyCollisionFilter = { categoryBits=2, maskBits=15 } local protectionCollisionFilter = { categoryBits=8, maskBits=2 } local playerCollisionFilter = { categoryBits=1, maskBits=14 } local function drawBonus() local bonus = {} for i=1, lvl[cnt.lvl].numberbonus do --lvl[cnt.lvl].numberbonus=2 bonus[i]=display.newImageRect( myGroupBonus,"square.png",12,12) bonus[i].x,bonus[i].y=-500,-500 bonus[i].onlife = true bonus[i].rotation=0 bonus[i].anchorY=1 bonus[i].isVisible = false bonus[i].timeInLife = 0 bonus[i].myid = 4 physics.addBody(bonus[i],{density=.21, friction=1, bounce=0.1,shape=pentagonShape,filter=bonusCollisionFilter}) end local function appearsbonus() cnt.square=cnt.square+1 --cnt.square=0 by default if cnt.square \> lvl[cnt.lvl].numberbonus then --lvl[cnt.lvl].numberbonus=2 cnt.square=1 end if bonus[cnt.square].isVisible == false then bonus[cnt.square].isVisible = true transition.to(bonus[cnt.square],{time=1, x=mathRandom(80,display.contentWidth-80), y=position.bonus}) bonus[cnt.square].isVisible = true end end timer.performWithDelay(mathRandom(1000,6000),appearsbonus,-1) end drawBonus()
thanks for your help.
