【问题标题】:LibGDX - Independent intersector for detecting collisionsLibGDX - 用于检测碰撞的独立交叉点
【发布时间】:2013-07-02 13:11:34
【问题描述】:

LibGDX 是否具有独立于快照的碰撞检测器?例如,我不想使用Box2D 并想检测速度非常快的物体的碰撞。我知道它有专门为此目的设计的Intersector 类,但我不能将它用于非常快的对象,因为它对它们不起作用。那么,LibGDX有这种类还是我自己实现呢?

【问题讨论】:

    标签: collision-detection libgdx physics game-engine


    【解决方案1】:

    在 libgdx 中没有这样的东西。可以通过box2d实现,但是你不想这样……所以你必须自己写一些东西。

    我认为你的问题是如果对象太快以至于它完全通过其他对象而没有给出任何碰撞回调。

    基本上你想要的是预测性碰撞。这意味着您发现碰撞将在前一步发生。然后采取相应的行动..

    试试这个

    http://seb.ly/2010/01/predictive-collision-detection-techniques/

    【讨论】:

      【解决方案2】:

      LibGDX 没有任何内置功能可用于扫描碰撞检测/响应(Box2D 提供的除外)。

      如果你自己实现的话,这里有一篇关于 gamedev.net 的文章:

      http://www.gamedev.net/page/resources/_/technical/game-programming/swept-aabb-collision-detection-and-response-r3084

      【讨论】:

        【解决方案3】:

        我发现了不同碰撞检测的实现,例如circle and linecircle and circle。但它是俄语的,对于Macromedia Flash MXswept collision detection 如果有人希望将这些函数转换为 Java,欢迎您! :)

        【讨论】:

          【解决方案4】:

          如果你使用矩形或圆形作为边界 你可以使用

          Rectangle bound1=new Rectangle(0,0,10,10);
          Circle c=new Circle(0,0,10);
          
          if(c.contains(vector.x,vector.y))
          {
          //do something
          }
          
          if(bound1.contains(vector.x,vector.y))
          {
          //do something
          }
          

          这应该可以帮助你

          【讨论】:

          • 我不认为它可以帮助我解决使用非常快的对象的问题!
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多