有时,当动态物体移动并碰撞静态物体时,动态卡住并停止。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。斜角意味着从角落切割一点,所以它不是方形 - 将方形变成八角形。这是因为它坚持着方形。 – iforce2d
谢谢iforce2d – Sixva