我的精灵body怎么会跳起来并回到盒子2d中的原始位置



我的精灵如何跳回到原来的位置??我在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. 请检查是否设置了重力
  2. 如果没有将重力设定在特定的角度上,你就施加了力
  3. 第三种情况是记下那个位置。。。获取当前位置。。。获取角度。。。。将线速度设置为该角度。。。。继续检查位置,一旦到达该位置,设置线速度为零。。。。。(这听起来很困惑,但我并没有完全理解你的问题,尽管我理解了,但我只能帮这么多)

最新更新