【问题标题】:Clean way to detect collision of object with box2d检测物体与 box2d 碰撞的干净方法
【发布时间】:2014-12-23 18:35:19
【问题描述】:

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

为此,我只是简单地检查了对象的位置并等待第一次反弹。

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

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

谁能帮帮我? (假设我不仅抱有希望而且实际上有更好的方法)

【问题讨论】:

    标签: java box2d libgdx


    【解决方案1】:

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

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

    【讨论】:

    • @user2372006:它是 C++。在java中,你必须删除 * 并将 -> 更改为 .
    • 是的,我会补充一点,b2ContactListener 不会退出(可能现在),类是:ContactListener
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多