施加冲动时身体不稳定的运动(Cocos2d-Box2d)

时间:2010-11-22 17:58:15

标签: cocos2d-iphone box2d-iphone

基本上我试图将冲动应用于特定角度的圆形体。 但是身体朝着不稳定的方向移动。 任何人都可以帮助我。

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

1 个答案:

答案 0 :(得分:0)

您应该使用b2Body::GetWorldCenter作为b2Body::ApplyLinearImpulse的第二个参数:

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

根据post at Box2D forumGetPosition不能用力的原因是力与身体的质心一起工作,这可能并不总是与它的位置相同。 / p>