我有 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 );
...
}
结果第一个身体朝同一个方向移动,但它在碰撞后旋转
答案 0 :(得分:1)
当两个实体发生碰撞时,你可以在碰撞监听器的PreSolve中联系> SetEnabled(false)来取消默认的碰撞响应。