Box2D Obj-C改变动态碰撞

时间:2012-11-20 01:16:28

标签: cocos2d-iphone box2d

我有两个带有Contact Listener的动态实体,我们可以调用主体A和B.

当身体(A.tag == Car)与身体碰撞时(B.tag == Cat)我不希望汽车被推回去,我希望猫被推,但不要推回车上(导致汽车停止!)

我觉得我错过了一些简单的东西,但有人可以解释一下我如何操纵b2Contact以便一个对象不会改变速度而另一个对象呢?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用PreSolve和PostSolve回调。 在PreSolve中,将汽车速度,角速度,角度和位置保存在某处 - 例如,作为汽车userData对象上的实例变量。在PostSolve中恢复这些值。

PreSolve在碰撞之前调用,在碰撞后立即调用PostSolve - 当速度发生变化时。我自己没试过,但应该工作。