0

我有具尸体。碰撞后第二个身体消失一个必须继续以与碰撞前相同的方式移动。

现在的样子:

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

结果,第一个物体向同一方向移动,但它像碰撞后一样旋转

4

1 回答 1

1

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

于 2012-06-16T10:17:15.067 回答