碰撞后如何恢复b2Body状态?

时间:2012-06-16 07:19:56

标签: objective-c ios box2d

我有 2 的机构。 碰撞后第二个身体消失,而第一个必须继续移动,其方式与碰撞前相同。

现在看起来如何:

1)我在contactListener :: BeginContact(..){};

中检测到了碰撞

2)保存第二个物体以删除,第一个物体恢复它的速度和角度。

3)

-(void) update: (ccTime) dt {
int32 velocityIterations = 8;
int32 positionIterations = 1;
_world->Step(dt, velocityIterations, positionIterations);
...
world->DestroyBody(secondBody);
firstBody->SetLinearVelocity(linearVelocityBeforeTouching);
firstBody->SetTransform(firstBody->GetPosition(), angleBeforeTouching );
...
}

结果第一个身体朝同一个方向移动,但它在碰撞后旋转

1 个答案:

答案 0 :(得分:1)

当两个实体发生碰撞时,你可以在碰撞监听器的PreSolve中联系> SetEnabled(false)来取消默认的碰撞响应。