Iphone cocos2d+;box2d:碰撞后如何确定车身?

Iphone cocos2d+;box2d:碰撞后如何确定车身?,iphone,ipad,cocos2d-iphone,Iphone,Ipad,Cocos2d Iphone,如果两个实体发生碰撞,我在步骤函数中使用以下代码获得碰撞事件: std::vector<b2Body *>toDestroy; std::vector<MyContact>::iterator pos; for(pos = _contactListener->_contacts.begin(); pos != _contactListener->_contacts.end(); ++pos) { MyCont

如果两个实体发生碰撞,我在步骤函数中使用以下代码获得碰撞事件:

std::vector<b2Body *>toDestroy;
    std::vector<MyContact>::iterator pos;

    for(pos = _contactListener->_contacts.begin();
        pos != _contactListener->_contacts.end(); ++pos) {

        MyContact contact = *pos;

        b2Body *bodyA = contact.fixtureA->GetBody();
        b2Body *bodyB = contact.fixtureB->GetBody();

        if (bodyA->GetUserData() != NULL && bodyB->GetUserData() != NULL) {


        }

    }
std::vectortoDestroy;
std::vector::iterator pos;
对于(pos=_contactListener->_contacts.begin();
pos!=\u contactListener->\u contacts.end();++pos){
MyContact contact=*位置;
b2Body*bodyA=contact.fixtureA->GetBody();
b2Body*bodyB=contact.fixtureB->GetBody();
如果(bodyA->GetUserData()!=NULL&&bodyB->GetUserData()!=NULL){
}
}
我如何确定bodyA是否击中bodyB而不是bodyC


执行此操作的最简单方法是什么?

此代码告诉您bodyA击中bodyB。这里没有bodyC。这取决于你如何利用这些知识。如果您指定了一个CCNode作为box2D主体的userData()属性,您可以像
CCNode*nodeA=bodyA->GetUserData()
一样获取它,然后执行一些检查,比如[nodeA objectType],其中objectType是您定义的某个属性。thx但是为了简化我的问题:-我如何确定墙是否击中了球,不是打球吗?我刚刚告诉过你,这是我的评论,你会怎么做。谢谢,我终于明白了:-)