使用chipmunk问题

local body = cc.PhysicsBody:createBox( cc.size(150, 150))
body:setDynamic(true)
body:setCategoryBitmask(2)
body:setCollisionBitmask(1)
body:setContactTestBitmask(1)
self.hero_:setPhysicsBody(body)

local body = cc.PhysicsBody:createEdgeBox(cc.size(display.width, display.height * 0.3))
body:setCategoryBitmask(1)
body:setCollisionBitmask(2)
body:setContactTestBitmask(2)
body:setDynamic(false)
layer:setPhysicsBody(body)

我设置了两个物体,如果设置setContactTestBitmask,能接受到碰撞回调,但是两个物体会穿过去,如果不设置setContactTestBitmask,两个物体不会穿过,但是接受到不碰撞回调。
是我设置有问题,还是引擎就是这么设计的?