Box2D ObjectSize / Force

时间:2013-04-14 05:21:10

标签: box2d processing

当我为我的物体放置一个更大的半径时,我施加在它们身上的力量效果会更差。 box2d是否计算了用于计算力的对象的大小?

创建circleShape时,这是我的代码:

    this._shape = new CircleShape();
    this._shape.setRadius(this._box2d.scalarPixelsToWorld(radius));
    this._fixture = new FixtureDef();
    this._fixture.shape = this.getShape();
    this._fixture.density = 1;
    this._fixture.friction = 0.3f;
    this._fixture.restitution = 0f;
    this._body.createFixture(this._fixture);

半径越大,物体上的力就越小。我可以禁用它吗?

1 个答案:

答案 0 :(得分:0)

即可。 Box2d根据其固定装置的尺寸和密度动态计算主体的总质量:更大的固定装置形状会增加身体的质量,因此其改变速度的阻力会更大;请记住,如果你想要模拟真实物理,它应该是如何工作的。

但是,如果您真的希望所有的身体都具有相同的质量,无论尺寸和密度如何,您都可以尝试:

  • 设置与半径圆成比例的密度(半径越大,密度越小)或
  • 使用void SetMassData(const b2MassData* data);
  • 覆盖您的身体肿块

希望它有所帮助。