簡體   English   中英

增加重量時,andengine Box2D物理機體不旋轉

[英]Andengine Box2D physics body is not rotating when increase weight

Andengine Box2D物理物體在增加重量時不會旋轉,否則會完美地旋轉。我正在制作一個游戲,玩家可以投擲炸彈,當玩家用炸彈投擲炸彈時,身體的自然重量會完美旋轉,但是當我增加炸彈的重量時炸彈不旋轉。我被困在這里。 謝謝。

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);

要注意的一件事是,這不會影響人體固定裝置的密度。 如果在此之后從車身添加或移除任何固定裝置,則將從固定裝置而不是從質量數據重新計算質量數據。 因此,您必須在更換固定裝置后再次執行此操作,以恢復所需的質量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM