如何在Box2D中将身体贴在地上?

时间:2012-09-20 09:18:06

标签: javascript box2d

我想为e.x创建一个类似b2CircleShapeb2PolygonShape的正文。并使用一个关节连接/粘贴到“地面”(屏幕?/世界?),这样当我用鼠标拖动并释放它时,它会被拖回原来的位置凭借联合。

我是否只创建了两个物体,一个固定在原位,另一个可以移动并在它们之间形成连接?

或者我将身体连接到某种“地面”?

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

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

2 个答案:

答案 0 :(得分:1)

您可以使用鼠标接头或电机接头来执行此操作。电机接头是Box2D的一个相对较新的附件,所以很可能不在Box2DWeb中。

要用鼠标联合做,只要像往常那样做一切真实的'鼠标关节(即玩家实际控制的一个)除了目标点不移动。你需要设置“坚持地面”的最大力量。鼠标关节的值比用于拖动身体的值要弱,否则你将无法移动它:)

答案 1 :(得分:0)

也许你在寻找“引力”?

我使用了java端口但是:

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

如果你想要身体不同的“自定义引力”,那么创建一个能够呈现身体重力的方向和力量的Vector2d,然后每个环都会将它应用到身体上

customGravity = new b2Vec2(x,y)
body.applyForce(customGravity)
[...]
world.step()