【发布时间】:2013-07-02 13:11:34
【问题描述】:
LibGDX 是否具有独立于快照的碰撞检测器?例如,我不想使用Box2D 并想检测速度非常快的物体的碰撞。我知道它有专门为此目的设计的Intersector 类,但我不能将它用于非常快的对象,因为它对它们不起作用。那么,LibGDX有这种类还是我自己实现呢?
【问题讨论】:
标签: collision-detection libgdx physics game-engine
LibGDX 是否具有独立于快照的碰撞检测器?例如,我不想使用Box2D 并想检测速度非常快的物体的碰撞。我知道它有专门为此目的设计的Intersector 类,但我不能将它用于非常快的对象,因为它对它们不起作用。那么,LibGDX有这种类还是我自己实现呢?
【问题讨论】:
标签: collision-detection libgdx physics game-engine
在 libgdx 中没有这样的东西。可以通过box2d实现,但是你不想这样……所以你必须自己写一些东西。
我认为你的问题是如果对象太快以至于它完全通过其他对象而没有给出任何碰撞回调。
基本上你想要的是预测性碰撞。这意味着您发现碰撞将在前一步发生。然后采取相应的行动..
试试这个
http://seb.ly/2010/01/predictive-collision-detection-techniques/
【讨论】:
LibGDX 没有任何内置功能可用于扫描碰撞检测/响应(Box2D 提供的除外)。
如果你自己实现的话,这里有一篇关于 gamedev.net 的文章:
【讨论】:
我发现了不同碰撞检测的实现,例如circle and line 或circle and circle。但它是俄语的,对于Macromedia Flash MX:swept collision detection
如果有人希望将这些函数转换为 Java,欢迎您! :)
【讨论】:
如果你使用矩形或圆形作为边界 你可以使用
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
}
这应该可以帮助你
【讨论】: