Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android libgdx中的多边形到多边形碰撞_Android_Polygon_Collision_Libgdx - Fatal编程技术网

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

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

我用这段代码得到了一个意外的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);
但是当我尝试使用相交点来查看它们是否重叠时

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,现在它已修复=)如果下面的答案回答了您的问题,请将其标记为“已接受”:谢谢!