Cocos2d iphone 我的精灵身体如何能在box2d中跳跃并回到原来的位置

Cocos2d iphone 我的精灵身体如何能在box2d中跳跃并回到原来的位置,cocos2d-iphone,box2d-iphone,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_

我的精灵怎么能跳回来呢?? 我正在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]];

}
谢谢

  • 请检查是否设置了重力
  • 如果没有将重力设定在你施加力的特定角度上
  • 第三种情况是记下那个位置。。。获取当前位置。。。获取角度。。。。将线速度设置为该角度。。。。继续检查位置,一旦到达该位置,将线速度设置为零。。。。。(这听起来令人困惑,但我并没有完全理解你的问题,因为我知道我只能提供这么多帮助)

  • 让我们看看你已经有了什么。。当我施力但无法到达跳跃位置时,返回到原始位置的精灵身体跳跃到底有什么“不起作用”。你的意思是它没有返回下来?HelloWorldLayer中使用的勾选/更新方法的可能重复最初会使精灵向下移动。你查过那个了吗?