動的ボディが静的ボディを動かして衝突し、動的にスタックし、停止することがあります。Box2d静的に固定された動的ボディ
http://imageshack.us/photo/my-images/14/screenfgz.png/(上下線がセンサである、中央の形状である本体)使用mouseJoint->がsetTarget(POS)を移動させるため
。
セッティング: 世界
b2Vec2 gravity = b2Vec2(0.f, 0.f);
bool doSleep = true;
world = new b2World(gravity, doSleep);
world->SetContinuousPhysics(false); // when using true, dynamic tunneling through other bodies
ダイナミックボディ
...
density = 1.f;
friction = 0.f;
restitution = 0.f;
...
body->SetBullet(true);
body->SetFixedRotation(true);
MouseJoint
b2Vec2 locationWorld = b2Vec2(pos.x/PTM_RATIO,pos.y/PTM_RATIO);
b2MouseJointDef md;
md.bodyA = groundBody;
md.bodyB = body;
md.target = body->GetPosition();
md.collideConnected = true;
md.maxForce = 1000 * body->GetMass();
md.dampingRatio = 0.1f;
md.frequencyHz = 2.f;
mouseJoint = (b2MouseJoint *)world->CreateJoint(&md);
ダイナミックボディとスタティックボディは長方形です。回転= 0.
スタックを取り除く方法は?
情報をありがとう!形状の数が多いとパフォーマンスとメモリに影響がありますか?そして、あなたはどういう意味ですか:「ダイナミックボディの角を斜めにして、完全に正方形ではない」 – Sixva
より多くのメモリを使用してパフォーマンスに影響を与えますが、Box2Dの衝突検出ルーチンはかなり良いので、平均的なPCを心配するには何千もの人がいる必要があります。ベベルとはコーナーから少し外して正方形ではないことを意味します。正方形を8角形にします。それはそれが固執する広場だからです。 – iforce2d
ありがとう、iforce2d – Sixva