我的精灵身体怎么能在box2d跳跃并回到原来的位置

时间:2012-07-14 07:03:44

标签: cocos2d-iphone box2d-iphone

我的精灵怎么会跳起来回到原来的地方? 我在iphone应用程序中使用box2d物理引擎。 我正在使用冲动,但无法正常工作。

是否有人知道逻辑或代码而不是告诉我。

-(void)jump
{
    b2Vec2 pos=ballbody->GetPosition();
 //   float vel=ballbody->GetAngularVelocity();
    double radian=atan2(pos.x+10, pos.y+10);
    float angle=CC_RADIANS_TO_DEGREES(radian);
    NSLog(@"Angle: %f",angle);
     float impulseFactor = 1.0;
   float force=ballbody->GetMass()*10;
    //force/=6.0;
    //b2Vec2 force=b2Vec2(0,50.0f);
  //  float apply=force*JUMP_IMPULSE*impulseFactor;
    ballbody->ApplyLinearImpulse(b2Vec2(angle,force), ballbody->GetWorldCenter());

 //  [self applyLinearImpulse:b2Vec2(0,[self mass]*JUMP_IMPULSE*impulseFactor) point:[self worldCenter]];

}

谢谢

1 个答案:

答案 0 :(得分:0)

  1. 请检查重力是否已设定
  2. 如果没有将重力设置在你施加力的特定角度上。
  3. 第三种情况是记下该位置...获取当前位置...获取角度....将线速度设置为该角度....继续检查位置并且一旦到达该位置设置线性速度零.....(这听起来令人困惑,但我完全不理解你的问题,所以尽管我明白我只能帮助这么多)