【发布时间】:2015-04-14 05:58:24
【问题描述】:
我正在使用 cocos2dx 并设置两个具有相同物理体定义的 Sprite,如下所示
PhysicsBody *physicsBody=PhysicsBody::createBox(size,PhysicsMaterial(1.0f,0.0,0.5f),Vec2(0, size.height*0.5));
physicsBody->setGravityEnable(true);
physicsBody->setCategoryBitmask(1);
physicsBody->setCollisionBitmask(1);
physicsBody->setContactTestBitmask(true);
physicsBody->setDynamic(true);
physicsBody->setContactTestBitmask(0xFFFFFFFF);
physicsBody->setMass(5.0f);
node->setPhysicsBody(physicsBody);
我在两个物理体之间定义了一个collision detection
auto contactListener=EventListenerPhysicsContactWithBodies::create(player1->getPhysicsBody(), player2->getPhysicsBody());
contactListener->onContactBegin = CC_CALLBACK_1(Game::onPlayerContact, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(contactListener, this);
我不希望这两个物体相互碰撞,或者如果它们碰撞产生任何物理影响。我正在这样做
bool Game::onPlayerContact(cocos2d::PhysicsContact &contact){
auto nodeA = contact.getShapeA()->getBody()->getNode();
auto nodeB = contact.getShapeB()->getBody()->getNode();
if(nodeA != NULL && nodeB != NULL){
printf("\nPlayers collided");
}
return false;
}
我无法绕过两个身体之间的接触,应该怎么做才能避免碰撞?
请帮忙。
谢谢。
【问题讨论】:
标签: ios cocos2d-x game-physics cocos2d-x-3.0 chipmunk