libgdx中的多边形到多边形碰撞

时间:2012-07-06 19:52:42

标签: android polygon collision libgdx

我使用此代码获得意外的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];

1 个答案:

答案 0 :(得分:4)

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

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

我将在SVN中修复此问题。