создание polygonShape в Libgdx с использованием классов Box2D (модифицированный ligdx), но без столкновения этого объекта - PullRequest
2 голосов
/ 06 марта 2012

Я застрял здесь с чем-то.

Я пытался создать форму многоугольника с помощью Libgdx и встроенных классов Box2d. мои коды следующие. Я создаю 8 векторов в массиве и рисую объект. форма многоугольника начинается в (82,0) мировых координат.

            Vector2[] vertices = new Vector2[8];

    vertices[0] = new Vector2(82f  , 0f  );
    vertices[1] = new Vector2(146f , 40f  );
    vertices[2] = new Vector2(385f , 268f);
    vertices[3] = new Vector2(322f , 341f);
    vertices[4] = new Vector2(225f , 322f);
    vertices[5] = new Vector2(282f , 398f);     
    vertices[6] = new Vector2(161f , 457f);
    vertices[7] = new Vector2(135f , 298f);
    PolygonShape shape = new PolygonShape();
    shape.set(vertices);

форма, которую я получаю, такова: screenshot of object

и это нормально, но форма круга не может обнаружить любое столкновение по сторонам этого объекта?!? !!

какие-нибудь советы?

Ответы [ 3 ]

2 голосов
/ 03 апреля 2012

Применить один и тот же групповой индекс к каждой фигуре в мире. FixtureDef.filter.groupIndex = 0;

2 голосов
/ 07 марта 2012

Для начала ваши векторы используют значения, огромные с точки зрения того, с чем Box2D обычно работает.

http://box2d.org/2011/12/pixels/

Попробуйте уменьшить масштаб и использовать преобразование мира в экран, т.е.

http://www.box2d.org/forum/viewtopic.php?f=3&t=8198

0 голосов
/ 01 июля 2017

Причина в том, что ваша фигура вогнута, то есть в ней есть надрез. Box2d обнаруживает только столкновения с выпуклыми многоугольниками.

...