用box2d检测对象碰撞的干净方法

时间:2011-09-16 16:34:43

标签: java box2d libgdx

我最近一直在研究box2d(在java中使用libgdx)并且一直在尝试创建我自己的自定义反弹效果(我在第一次反弹后增加Restitution

要做这个测试,我只需检查对象的位置并等待第一次反弹。

但是现在我想实际实现这个并遇到一个问题:如何检测box2d中2个特定对象的碰撞?

我找到了这个教程: box2d collision detection - 但我非常不愿意使用该代码。必须有一种更简单,更清晰的方法来检测两个对象之间的碰撞(无需设置用户数据并检查所有碰撞的巨大if()条件......)

任何人都可以帮助我吗? (假设我不仅仅是充满希望而且确实有更好的方式)

2 个答案:

答案 0 :(得分:2)

用于处理碰撞和重新实现碰撞回调的子类b2ContactListener类。然后就是:

MyContactListener *listener = new MyContactListener();
myB2World->SetContactListener(listener);

答案 1 :(得分:0)

请注意,有些解决方案没有像往常一样的快捷方式,但您可以找到正确的解决方案,并且可能有一百种方法可以检测到碰撞并且您知道它,不是吗?这就像在box2d碰撞检测程序的解决方案中一样。

http://blog.allanbishop.com/box2d-2-1a-tutorial-%E2%80%93-part-4-collision-detection/