1

基本的に私は特定の角度で丸い体に衝撃を加えようとしています。しかし、体は不安定な方向に動きます。誰か助けてくれませんか。

b2Vec2 v1 = bombbody->GetPosition();
b2Vec2 v2 = arrowPoint;//Value got from touch
b2Vec2 final = v2-v1;
float angle1 = CC_RADIANS_TO_DEGREES(atan2(final.y,final.x));
float factor = sqrt(final.x/PTM_RATIO * final.x/PTM_RATIO + final.y/PTM_RATIO * final.y/PTM_RATIO);
b2Vec2 ImpulseVector = b2Vec2(cos(angle1)*factor,sin(angle1)*factor);
b2Vec2 PointVector = bombbody->GetPosition();
bombbody->ApplyLinearImpulse(ImpulseVector,PointVector); 
4

1 に答える 1

0

b2Body::GetWorldCenterの2番目のパラメータに使用する必要がありますb2Body::ApplyLinearImpulse

  b2Vec2 PointVector = bombbody->GetWorldCenter();
  bombbody->ApplyLinearImpulse(ImpulseVector,PointVector); 

Box2Dフォーラムの投稿によると、力が作用しない理由GetPositionは、力が体の重心に作用するためです。これは、常にその位置と同じであるとは限りません。

于 2011-08-02T00:46:46.307 に答える