当我为我的物体放置一个更大的半径时,我施加在它们身上的力量效果会更差。 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);
半径越大,物体上的力就越小。我可以禁用它吗?
答案 0 :(得分:0)
是即可。 Box2d根据其固定装置的尺寸和密度动态计算主体的总质量:更大的固定装置形状会增加身体的质量,因此其改变速度的阻力会更大;请记住,如果你想要模拟真实物理,它应该是如何工作的。
但是,如果您真的希望所有的身体都具有相同的质量,无论尺寸和密度如何,您都可以尝试:
void SetMassData(const b2MassData* data);
希望它有所帮助。