onContactBegin 事件无反应

auto listener = EventListenerPhysicsContact::create();
listener->onContactBegin = =](PhysicsContact& contact)
{
CCLOG(“onContactBegin !!!”);
return true;
};

Director::getInstance()->getEventDispatcher()->addEventListenerWithFixedPriority(listener,10);

为啥没有反应呢 求解:6:

你有没有设置刚体的这个函数?setContactTestBitmask(和setCollisionBitmask的作用类似,用于判断是否调用碰撞事件的函数)
不然即使碰撞了也不会调用碰撞函数~:4:

Cocos2d-x 3.0的需要对PhysicsBody做一些设置

       body->setMass(1.0f);
       body->setContactTestBitmask(0xFFFFFFFF);
```


楼主你看看是不是这个问题。

另外这里有一个flappybird的3.0物理引擎demo。是可以正常检测碰撞的,你可以参考一下

https://github.com/fusijie/FlappyBird/blob/master/Classes/GameLayer.cpp

楼上正解啊,困扰了好久

太感动了,之前这个困扰了我很长时间,多谢有人解答了

当一个身体的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