使用Box2D(ligdx修改)类在Libgdx中创建polygonShape,但没有碰撞该对象

时间:2012-03-06 07:46:01

标签: java libgdx box2d

我在这里坚持了一些东西。

我一直在尝试使用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 个答案:

答案 0 :(得分:2)

首先,你的向量使用的值就Box2D通常使用的值而言是巨大的。

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

尝试缩小规模并使用世界到屏幕的转换,即

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

答案 1 :(得分:2)

将相同的组索引应用于世界中的每个形状 fixtureDef.filter.groupIndex = 0;

答案 2 :(得分:0)

原因是你的形状是凹的,即它有一个切口。 Box2d仅检测与凸多边形的碰撞。