1

我想创建一个类似b2CircleShapeb2PolygonShapefor ex 的身体并使用关节将其连接/粘贴到“地面”(屏幕?/世界?),这样当我用鼠标拖动它并释放它时,它会被拖回它的原始位置凭借关节。

我是否只创建两个实体,一个固定到位,另一个可以移动并在它们之间创建关节?

还是我将身体连接到某种“”?

到目前为止,我得到了这个:http: //jsfiddle.net/AP2D6/5/

我正在使用Box2DWebhttp ://code.google.com/p/box2dweb/

4

2 回答 2

1

您可以使用鼠标关节或电机关节来执行此操作。电机关节是 Box2D 中相对较新的补充,因此很可能还没有出现在 Box2DWeb 中。

要使用鼠标关节执行此操作,只需按照通常对“真实”鼠标关节(即玩家实际控制的关节)所做的一切操作,但目标点不移动。您需要将“粘在地面”鼠标关节的最大力设置为比用于拖动身体的力更弱的值,否则您将无法移动它:)

于 2012-09-20T11:02:08.660 回答
0

也许您正在寻找“重力”?

我使用了 java 端口,但是:

创建 World 实例时,第二个参数是表示重力方向和力的 Vector2d。这种重力作用于所有非静态物体的每一步

如果您想要与身体不同的“自定义重力”,则创建一个表示身体重力方向和力的 Vector2d,然后每个循环都将其应用于身体

customGravity = new b2Vec2(x,y)
body.applyForce(customGravity)
[...]
world.step()
于 2012-09-20T09:30:52.543 回答