新手求教:为什么连碰撞检测的事件都进不去

void PlayScene::onEnter()
{
Layer::onEnter();
auto contactListener = EventListenerPhysicsContact::create();
contactListener->onContactBegin = CC_CALLBACK_1(PlayScene::onContactbegein,this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(contactListener, this);
}

//打断点,碰撞了也不执行这段代码
bool PlayScene::onContactbegein(const PhysicsContact& contact)
{
auto spriteA = (Sprite*)contact.getShapeA()->getBody()->getNode();
auto spriteB = (Sprite*)contact.getShapeB()->getBody()->getNode();

if (spriteA->getTag() == 11 && spriteB->getTag() == 21 || spriteA->getTag() == 21 && spriteB->getTag() == 11)
{
sprite->removeFromParent();//n
}
return true;
}

原来是忘记设置碰撞检测的参数。
sprite->getPhysicsBody()->setCategoryBitmask(0x01);
sprite->getPhysicsBody()->setCollisionBitmask(0x01);
sprite->getPhysicsBody()->setContactTestBitmask(0x01);
这就可以了。