Usm*_*har 1 android box2d game-physics andengine
Andengine Box2D物理体在增加重量时不旋转,否则它完全旋转.我正在做一个玩家可以投掷炸弹的游戏,当玩家用炸弹投掷炸弹时,它的自然重量完全旋转但是当我增加炸弹的重量时炸弹没有旋转.我坚持这里..plz帮助.谢谢.
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());
}
Run Code Online (Sandbox Code Playgroud)
更改现有主体的质量最好通过缩放该主体的现有massData来完成.这样可以将质心保持在正确的位置,并确保质量和转动惯量正确匹配.
b2MassData massData;
body->GetMassData(&massData);
float scaleFactor = desiredMass / massData.mass;
massData.mass *= scaleFactor;
massData.I *= scaleFactor;
body->SetMassData(&massData);
Run Code Online (Sandbox Code Playgroud)
需要注意的一点是,这不会影响身体上的固定装置的密度.如果在此之后添加或移除身体中的任何固定装置,将从固定装置重新计算质量数据,而不是从您的质量数据中重新计算.所以你必须在更换灯具后再次这样做,以恢复你想要的质量.
| 归档时间: |
|
| 查看次数: |
3021 次 |
| 最近记录: |