Я новичок в Cocos2d-x 3.2 Physic Engine (как сказал Cocos2d-x, этот движок основан на Chipmuk). Я сделал образец игры Popcap «Стрельба по яйцам». При обнаружении контакта 2 яиц я столкнулся с проблемой: динамическое «яйцо», кажется, переходит в статическое «яйцо», когда возникает событие контакта. Я поставил для яиц:
- Масса: 10.f
- PHYSICSSHAPE_MATERIAL_DEFAULT
- applyImpulse около (0,900)
Это изображение:
Обнаружение события касания мяча
auto contactBallListener = EventListenerPhysicsContact::create();
contactBallListener->onContactBegin = CC_CALLBACK_1(IngameScene::onContactBallsBegin, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(contactBallListener, this);
.....
bool IngameScene::onContactBallsBegin(PhysicsContact& contact)
{
auto objA = contact.getShapeA()->getBody()->getNode();
auto objB = contact.getShapeB()->getBody()->getNode();
}
Физическая установка
if (group == BallGroupTarget) {
//Green ball
body->setCategoryBitmask(0xFFFFFFF0);
body->setContactTestBitmask(0x0000000F);
body->setCollisionBitmask(0xFFFFFFFF);
} else if (group == BallGroupShooting){
//Pink ball
body->setContactTestBitmask(0xFFFFFFFF);
body->setGravityEnable(false);
}
Можете ли вы помочь мне решить эту проблему?
Большое спасибо!