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