Quick-cocos2dx3.2中Chipmunk物理引擎中碰撞检测无法成功监听到?

代码如下。。。
MainScene.lua


local MainScene = class("MainScene", function()
    return display.newPhysicsScene("MainScene")
end)

MainScene.coinSprite = nil
MainScene.contactListener = nil

function MainScene:ctor()
    -- create touch layer
    self.layer = display.newLayer()
    self.layer:setTouchEnabled(true)
    self.layer:addNodeEventListener(cc.NODE_TOUCH_EVENT, function(event)
        return self:onTouch(event.name, event.x, event.y)
    end)
    self:addChild(self.layer)

    self.world = self:getPhysicsWorld()
    self.world:setGravity(cc.p(0, 0))

    -- add debug node
    self.world:setDebugDrawMask(cc.PhysicsWorld.DEBUGDRAW_ALL)
    -- add sprite
    self:createCoin(300,300,1)
    self.coinSprite = self:createCoin(100,100,2)

    --监听物理碰撞
    local onContactBegin = function(event)
        print("MainScene----------碰撞到了")
    end
    self.contactListener = cc.EventListenerPhysicsContact:create()
    self.contactListener:registerScriptHandler(onContactBegin, cc.Handler.EVENT_PHYSICS_CONTACT_BEGIN)
    local eventDispathcher = cc.Director:getInstance():getEventDispatcher()
    eventDispathcher:addEventListenerWithFixedPriority(self.contactListener, 1)

end

--创建要碰撞的对象
function MainScene:createCoin(x, y,testBitMask)
    local coinSprite = display.newSprite("#Coin.png")
    self:addChild(coinSprite)
    local boxBody = cc.PhysicsBody:createBox(cc.size(100,100))
    boxBody:setCollisionBitmask(testBitMask)
    boxBody:setContactTestBitmask(testBitMask)
    coinSprite:setPhysicsBody(boxBody)
    coinSprite:getPhysicsBody():setCategoryBitmask(2);
    coinSprite:setPosition(x, y)
    return coinSprite
end

function MainScene:onTouch(event, x, y)
    if event == "began" then
        self.coinSprite:setPosition(x,y)
    end
end

return MainScene


求大神们帮忙看看什么问题导致碰撞检测事件无法调用到,真不知道怎么回事,参考了论坛里面好几个帖子的说法,都没有试成功。。。。:12:

问了一个高手,然后解决了这个碰撞检测的问题
碰撞掩码值设定:
setContactTestBitmas 这个值 要和他的setCategoryBitmask 位与值不为0 才会响应监听

不知道你这句话的意思,我加上了coinSprite:getPhysicsBody():setContactTestBitmask(1)这句就可以了。谢谢。

我想问一下你这些关于quick3.2的物理引擎的API是在哪里看到的,我找死都找不到。
楼主如果看到,拜托回一下我。谢谢。:14:

这个涉及到三种掩码。你百度下。一两句讲不清比较复杂。

http://cn.cocos2d-x.org/article/index?type=wiki&url=/doc/cocos-docs-master/manual/framework/native/wiki/physics/zh.md

这里有三个值:CategoryBitmask,ContactTestBitmask和CollisionBitmask。您可以使用相应的get/set方法来获取/设置它们。它们是由逻辑和操作测试的。当一个身体的CategoryBitmask并与另一主体的ContactTestBitmask其结果不等于零时,接触事件将被发出,相反接触的事件将不被发送。当一个的身体的CategoryBitmask并与另一主体的CollisionBitmask其结果不等于零,则它们将碰撞,相反不会。是独立的,在默认情况下,CategoryBitmask值为0xFFFFFFFF,ContactTestBitmask值是00000000,而CollisionBitmask值为0xFFFFFFFF,表示所有的身体会相互碰撞,但默认不发送接触事件。

http://cn.cocos2d-x.org/article/index?type=wiki&url=/doc/cocos-docs-master/manual/framework/native/wiki/physics/zh.md