碰撞后如何恢复b2Body状态?

我有2个机构。 碰撞后,第二个物体消失一个物体必须继续前进 ,就像碰撞前一样。

现在看起来如何:

1)我在contactListener :: BeginContact(..){}中检测到碰撞。

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

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 ); ... } 

结果,第一个物体在同一个方向上移动,但是它在碰撞之后旋转

当两个物体碰撞时,可以在碰撞监听器的PreSolve中执行contact-> SetEnabled(false)来取消默认的碰撞响应。