我有两具尸体。碰撞后第二个身体消失,第一个必须继续以与碰撞前相同的方式移动。
现在的样子:
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 );
...
}
结果,第一个物体向同一方向移动,但它像碰撞后一样旋转