Box2D中的ChainShape

我最近开始学习libgdx,我遇到了Box2D的CainShape问题。

我的第一个目标是简单地创建一个带有ChainShape的盒子。

为了实现这一点,我在数组中添加了四个Vector2并使用它们来创建循环。

结果取决于arrays中的排列或沙漏形物体(左上方连接右下方,右上方连接左下方)或错误

表达式:b2DistanceSquared(v1,v2)> 0.005f * 0.005f

这是我到目前为止使用的代码:

Vector2[] box = new Vector2[4]; box[1] = new Vector2(0 - bounds.getWidth() / 2 / Main.PPM, 0 - bounds.getHeight() / 2 / Main.PPM); box[0] = new Vector2( bounds.getWidth() / 2 / Main.PPM, 0 - bounds.getHeight() / 2 / Main.PPM); box[2] = new Vector2(0 - bounds.getWidth() / 2 / Main.PPM, bounds.getHeight() / 2 / Main.PPM); box[3] = new Vector2( bounds.getWidth() / 2 / Main.PPM, bounds.getHeight() / 2 / Main.PPM); ChainShape chainShape = new ChainShape(); chainShape.createLoop(box); fdef.shape = chainShape; fixture = body.createFixture(fdef); 

我希望有人可以告诉我我错过了什么。
提前致谢!

调整您传递的参数并放入此代码中。 这段代码肯定会运行

 ChainShape chain = new ChainShape(); createChain().Vec2[] vertices = new Vec2[2]; vertices[0] = box2d.coordPixelsToWorld(0,150); vertices[1] = box2d.coordPixelsToWorld(width,150); chain.createChain(vertices, vertices.length); FixtureDef fd = new FixtureDef(); fd.shape = chain; fd.density = 1; fd.friction = 0.3; fd.restitution = 0.5; body.createFixture(fd); 

希望这回答问题,如果不是请问。