Столкновение полигонов с полигонами в 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];

person Tiarsoft    schedule 06.07.2012    source источник
comment
У вас есть скриншот ваших полигонов? Я просто предполагаю, что один может быть не выпуклым.   -  person P.T.    schedule 06.07.2012
comment
они были выпуклыми, это была ошибка, теперь ее исправили =)   -  person Tiarsoft    schedule 22.10.2012
comment
отметьте приведенный ниже ответ как принятый, если он ответил на ваш вопрос: stackoverflow.com/faq#howtoask Спасибо!   -  person P.T.    schedule 22.10.2012


Ответы (1)


Похоже, это ошибка в LibGDX. В строке настройки projX он должен обернуть индекс

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

Я исправлю это в SVN.

person nEx.Software    schedule 06.07.2012