2012-03-09 8 views
0

box2d b2BodyDefにmassdataプロパティがあるか、何らかの方法でアクセスできるかどうかを知りたい。私はこれがCocos2Dでできるかどうかはわかりませんが、私はcocos2dで再実装しようとしているフラッシュコードで見ました。 ここでは、質問をもたらしたコードです。box2d b2BodyDefはCocos2Dで大量データプロパティを持つことができますか?

for (var i:Number = 0; i < numSections - 1; i++) 
      { 
      // One rope section body 
      ropeBodyDef.position.Set(0, starBody.GetPosition().y - dY * i/numSections); 
      ropeBodyDef.massData.mass = 0.8 + 0.8 * i/numSections; 
       //ropeBody. 
      ropeBody = world.CreateBody(ropeBodyDef);    
      ropeBody.CreateShape(ropeShapeDef); 

      ropeSegments.push(ropeBody); 

      // One rope section joint 
      jointDef.Initialize(ropeStart, ropeBody, ropeStart.GetPosition(), ropeBody.GetPosition()); 
      joint = world.CreateJoint(jointDef) as b2DistanceJoint; 
      joint.m_length = dY/numSections; // this is probably something bad, but I need it for the whole thing to work. 

      // update startpoint for next joint 
      ropeStart = ropeBody; 
     } 

誰も私を助けてくださいすることができます。あなたは身体作成後

答えて

1

大量のデータにアクセスすることができます。

b2Body *body = world->createBody(&bodyDef); 
b2MassData massData; 
body->GetMassData(&massData); 
massData.mass = NEW_MASS; 
body->setMassData(&massData); 

をしかし、あなたはまた、単にデフ治具によって密度を設定できます

b2FixtureDef fixtureDef; 
fixtureDef.density = 1.0; 
aBody->createFixture(&fixtureDef); 
関連する問題