【问题标题】:polygon to polygon collision in libgdxlibgdx中的多边形到多边形碰撞
【发布时间】:2012-07-07 07:16:15
【问题描述】:

我在这段代码中得到了一个意外的 ArrayIndexOutOfBoundsException;谁能帮忙?

我创建了两个这样的多边形:

float[]vertice={.1f, 2.7f, .4f, 4.3f, 3.4f, 5.3f, 5.6f, 3.3f, 3.3f, .1f};
Polygon oPolygon1=new Polygon(vertice);

float[]vertice2={.2f,1.3f,1.9f,4.5f,4.1f,1.3f};
Polygon oPolygon2=new Polygon(vertice2);

并更新他们的位置:

oPolygon1.setPosition(x1,y1);
oPolygon2.setPosition(x2,y2);

但是当我尝试使用Intersector 来查看它们是否重叠时...

if(Intersector.overlapConvexPolygons( oPolygon1, oPolygon2)){
   //do something
}

...我收到以下错误:

线程“LWJGL 应用程序”中的异常 java.lang.ArrayIndexOutOfBoundsException:

在Intersector内的这段代码中:

// projection axis is perpendicular to potential separation axis edge i->j
float projX = verts1[j + 1] - verts1[i + 1];
float projY = verts1[i] - verts1[j];

【问题讨论】:

  • 你有你的多边形的截图吗?我只是猜测一个可能不是凸的。
  • 它们是凸的,这是一个错误,现在已修复 =)
  • 如果回答了您的问题,请将下面的答案标记为“已接受”:stackoverflow.com/faq#howtoask 谢谢!

标签: android polygon collision libgdx


【解决方案1】:

这似乎是 LibGDX 中的一个错误。在行设置projX中,它应该换行索引

float projX = verts1[(j + 1) % length1] - verts1[i + 1];

我会在 SVN 中解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    相关资源
    最近更新 更多