box2d中的易碎墙

时间:2013-12-17 19:45:41

标签: box2d box2d-iphone

使用box2d和cocos2d,我需要创建一些b2body模型,其中该主体将是一条线或整体(由带编码的矢量组成),可以“传递”当球以高速撞击他时,用一个球。

所以,换句话说,就像在现实世界中一样,材料应该是柔软的,可以被打破。

零密度不会那样做。 还有另外一种方法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

为什么要制作一个?????用砖块(较小的颗粒)制作墙壁,这些砖块会因撞击而坠落.....

获得此功能的另一种方法是使用contactListener的presolve ....检查两个物体之间的碰撞,如果一个物体的速度大于某个值,则联系人禁用...

从我的一个游戏中获取此代码.....

`enter code here`if ((userDataObjectA.userDataType == kObjectTypeMotherShip || userDataObjectB.userDataType == kObjectTypeMotherShip) && (userDataObjectA.userDataType == kObjectTypeSaucer || userDataObjectB.userDataType == kObjectTypeSaucer)) {
        b2WorldManifold worldManifold;
        contact->GetWorldManifold(&worldManifold);
        if (userDataObjectA.userDataType == kObjectTypeSaucer) {
            b2Vec2 saucerVelocity = bodyA->GetLinearVelocity();
            if (saucerVelocity.y > 2) {
                contact->SetEnabled(false);
            }
        } else if (userDataObjectB.userDataType == kObjectTypeSaucer) {
            b2Vec2 saucerVelocity = bodyB->GetLinearVelocity();
            if (saucerVelocity.y > 2) {
                contact->SetEnabled(false);
            }
        }
  }