Cocos2d iphone 物体的密度真的会改变什么吗?

Cocos2d iphone 物体的密度真的会改变什么吗?,cocos2d-iphone,box2d,Cocos2d Iphone,Box2d,这是我第三次问这个问题。答案并不清楚 似乎所有cocos2d-box2d开发人员都不清楚mass 没有人真的不知道如何设定物体的质量,或者用另一种方式 有些人使用:setDensity和resetBodyMass,这对我来说并不适用,有些人使用shapeDef.density=x,这也不会改变任何东西 这一切都是不洁净的。为什么密度不影响质量? 我怎样才能改变我的体重 我的代码(不影响质量)是: //add body b2BodyDef spriteBodyDef; spriteBody

这是我第三次问这个问题。答案并不清楚

似乎所有cocos2d-box2d开发人员都不清楚mass

没有人真的不知道如何设定物体的质量,或者用另一种方式

有些人使用:setDensity和resetBodyMass,这对我来说并不适用,有些人使用shapeDef.density=x,这也不会改变任何东西

这一切都是不洁净的。为什么密度不影响质量? 我怎样才能改变我的体重

我的代码(不影响质量)是:

    //add body
b2BodyDef spriteBodyDef;
spriteBodyDef.type =b2_dynamicBody; //b2_staticBody;
spriteBodyDef.position.Set(pilot1.position.x/PTM_RATIO,pilot1.position.y/PTM_RATIO);
spriteBodyDef.userData = pilot1;
pilot1Body = world->CreateBody(&spriteBodyDef);    
b2CircleShape spriteShape; //b2polygon-for box shape
spriteShape.m_radius = 15.0/PTM_RATIO;
b2FixtureDef spriteShapeDef;
spriteShapeDef.restitution = 0.4f;
spriteShapeDef.shape = &spriteShape;
spriteShapeDef.density=10.0f;    // why this value is not doing anything ????
有人能告诉我它是怎么工作的吗?
BOX2D文档讨论的是cocos2d中目前不存在的版本。

如何确定在更改密度值后质量不会发生变化?假设您已经完成了:pilot1Body->CreateFixture&spriteShapeDef;我确实得到了另一个质量,但当物体移动时,它不会影响任何东西。例如,密度为1000,给出了一个较大的质量,但作为一个长方体的长方体在被另一个长方体撞击时仍然很容易翻转,即使长方体应该更重..您使用b2Fixture::SetDensity然后使用b2Body::ResetMassData的方法是正确的,这应该会导致GetMass给您一个不同的结果,听起来您得到了这个结果,所以你的问题现在似乎在改变。关于这种“容易翻转”的行为,您是否只更改一个长方体的密度?如果将其所有密度增加相同的量,则它们之间的碰撞行为将与较低密度时相同,如果您所说的易于翻转是指实体相互反弹的方式,那么您需要使用b2Fixture::SetRestitution修改恢复属性。。附言:如何提出正确的问题以获得正确的帮助很重要;