Android libgdx中的多边形到多边形碰撞
我用这段代码得到了一个意外的ArrayIndexOutOfBoundsException;有人能帮忙吗 我创建了两个多边形,如下所示:Android libgdx中的多边形到多边形碰撞,android,polygon,collision,libgdx,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=n
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);
但是当我尝试使用相交点来查看它们是否重叠时
if(Intersector.overlapConvexPolygons( oPolygon1, oPolygon2)){
//do something
}
。。。我得到以下错误:
线程“LWJGL应用程序”中出现异常
java.lang.ArrayIndexOutOfBoundsException:
在交叉点中的此代码块中
:
// 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];
这似乎是LibGDX中的一个bug。在行设置projX中,它应该包装索引
float projX = verts1[(j + 1) % length1] - verts1[i + 1];
我将在SVN中修复此问题。这似乎是LibGDX中的一个bug。在行设置projX中,它应该包装索引
float projX = verts1[(j + 1) % length1] - verts1[i + 1];
我将在SVN中修复此问题。您有多边形的屏幕截图吗?我只是猜测其中一个可能不是凸的。它们是凸的,这是一个bug,现在它已修复=)如果下面的答案回答了您的问题,请将其标记为“已接受”:谢谢!你有多边形的截图吗?我只是猜测其中一个可能不是凸的。它们是凸的,这是一个bug,现在它已修复=)如果下面的答案回答了您的问题,请将其标记为“已接受”:谢谢!