1

b2CircleShapeまたはfor exのようなボディを作成し、ジョイントを使用して「地面b2PolygonShape」(スクリーン?/ワールド?)に接続/貼り付けたいので、マウスでドラッグして離すと、元の場所にドラッグされます。ジョイントによる元の位置。

2 つのボディを作成するだけですか? 1 つは所定の位置に固定され、もう 1 つは移動してそれらの間にジョイントを作成できますか?

それとも、体をある種の「地面」に接続しますか?

これまでのところ、これを取得しました:http://jsfiddle.net/AP2D6/5/

Box2DWebを使用しています: http://code.google.com/p/box2dweb/

4

2 に答える 2

1

これを行うには、マウスジョイントまたはモータージョイントを使用できます。モータージョイントはBox2Dに比較的新しく追加されたものであるため、Box2DWebにはまだ含まれていない可能性があります。

マウスジョイントでそれを行うには、ターゲットポイントが移動しないことを除いて、「実際の」マウスジョイント(つまり、プレーヤーが実際に制御しているもの)の場合と同じようにすべてを実行します。「地面にくっつく」マウスジョイントの最大力を、体をドラッグするために使用される値よりも弱い値に設定する必要があります。そうしないと、移動できません:)

于 2012-09-20T11:02:08.660 に答える
0

多分あなたは「重力」を探していますか?

私はJavaポートを使用しましたが:

World インスタンスを作成するとき、2 番目の引数は、重力の方向と力を表す Vector2d です。この重力はすべての非静的ボディにステップごとに適用されます

体とは異なる「カスタム重力」が必要な場合は、体の重力の方向と力を表す Vector2d を作成し、すべてのループでそれを体に適用するだけです

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