Android 增加重量时,机体不旋转
Andengine Box2D物理体在增加重量时不会旋转,否则会完美旋转。我正在制作一个游戏,玩家可以投掷炸弹,当玩家投掷炸弹时,炸弹的自然重量会完美旋转,但当我增加炸弹的重量时,炸弹不会旋转。我被困在这里。请帮助。 多谢各位Android 增加重量时,机体不旋转,android,box2d,andengine,game-physics,Android,Box2d,Andengine,Game Physics,Andengine Box2D物理体在增加重量时不会旋转,否则会完美旋转。我正在制作一个游戏,玩家可以投掷炸弹,当玩家投掷炸弹时,炸弹的自然重量会完美旋转,但当我增加炸弹的重量时,炸弹不会旋转。我被困在这里。请帮助。 多谢各位 if (bomb) { mScene.detachChild(target); target = null; bombFire = new Sprite(mBall2.getX()+mBall2.getWidth(
if (bomb)
{
mScene.detachChild(target);
target = null;
bombFire = new Sprite(mBall2.getX()+mBall2.getWidth()/2,mBall2.getY(),bombFireRegion);
mScene.attachChild(bombFire);
bombBody = PhysicsFactory.createCircleBody(mPhysicsWorld, bombFire,BodyType.DynamicBody, bombFixDef);
bombBody.setMassData(bombMass);
mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(bombFire, bombBody, true, true));
Vector2 v = new Vector2((xpt-mBall2.getX()),(ypt-mBall2.getY()));
bombBody.applyLinearImpulse(v,bombBody.getWorldCenter());
}
更改现有实体的质量最好通过缩放该实体的现有massData来完成。这将使质心保持在正确的位置,并确保质量和转动惯量正确匹配
b2MassData massData;
body->GetMassData(&massData);
float scaleFactor = desiredMass / massData.mass;
massData.mass *= scaleFactor;
massData.I *= scaleFactor;
body->SetMassData(&massData);
需要注意的一点是,这不会影响车身上固定装置的密度。如果在此之后从实体中添加或删除任何装置,则将从装置而不是从体量数据中重新计算体量数据。因此,您必须在更改装置后再次执行此操作,以恢复所需的质量。更改现有实体的质量最好通过缩放该实体的现有质量数据来完成。这将使质心保持在正确的位置,并确保质量和转动惯量正确匹配
b2MassData massData;
body->GetMassData(&massData);
float scaleFactor = desiredMass / massData.mass;
massData.mass *= scaleFactor;
massData.I *= scaleFactor;
body->SetMassData(&massData);
需要注意的一点是,这不会影响车身上固定装置的密度。如果在此之后从实体中添加或删除任何装置,则将从装置而不是从体量数据中重新计算体量数据。因此,您必须在更换夹具后再次执行此操作,以恢复所需的质量。感谢您的关注。以上是代码。谢谢。变量“bombMass”中有哪些值?可能您正在将转动惯量设置为零。MassData bombMass=新MassData();质量,质量=10f;非常感谢如果我把转动惯量设为1,它就可以工作了(炸弹旋转得很好):)谢谢你的兴趣。以上是代码。谢谢。变量“bombMass”中有哪些值?可能您正在将转动惯量设置为零。MassData bombMass=新MassData();质量,质量=10f;非常感谢,如果我把转动惯量设为1,它就工作了(炸弹旋转得很好):)