如何将对撞机分成2个不同的箱式对撞机,用于发动机箱体

时间:2014-03-14 19:09:52

标签: android box2d andengine game-physics

我有一个非常简单的精灵,上半部分厚,下半部分薄。而且我已经附上了一个箱体。现在的问题是碰撞发生,即使物体没有触及下半部分的精灵,因为身体被当作一个矩形。我想要做的就是修改上部和下部的对撞机宽度。有人可以告诉我该怎么做以及最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

Body可以由多个灯具组成,所以你可以制作两个灯具,一个用于上半部分,一个用于下半部分,并将它们添加到身体中。

例如,如果你想让下半部分为2x4矩形,上半部分为4x4矩形,你可以这样做:

    PolygonShape bottomHalfShape = new PolygonShape();
    bottomHalfShape.set(new Vector2[] {new Vector2(2, 0), new Vector2(4, 0), new Vector2(4, 4), new Vector2(2, 4)});
    PolygonShape topHalfShape = new PolygonShape();
    topHalfShape.set(new Vector2[] {new Vector2(0, 4), new Vector2(4, 4), new Vector2(4, 8), new Vector2(0, 8)});

    FixtureDef bottomHalf = new FixtureDef();
    bottomHalf.shape = bottomHalfShape;
    FixtureDef topHalf = new FixtureDef();
    topHalf.shape = topHalfShape;

    body.createFixture(bottomHalf);
    body.createFixture(topHalf);

请注意,这是libGDX的示例代码,可能需要为AndEngine稍微修改一下。