0

嘿,我有另一个关于跳跃精灵身体的问题。在我的代码中,我使用 moveLeft 和 moveRight 按钮,当我使用以下代码按下 moveRight 按钮时

if (moveRight.active==YES) 
    {
            b2Vec2 force=b2Vec2(4,0);
            ballBody->SetLinearVelocity(force);                
    }

它移动完美,当我释放此按钮时,精灵主体停止使用以下代码

else
{
      b2Vec2 force=b2Vec2(0,0);
      ballBody->SetLinearVelocity(force); 
} 

但是当我把这个 else 部分然后跳转不能完成。我的跳转代码如下

if (jumpSprite.active==YES) 
                {
                    NSLog(@"Jump Sprite");
                    b2Vec2 locationWorld;
                    locationWorld=b2Vec2(0.0f,4.0f);
                    double force=ballBody->GetMass();
                    ballBody->ApplyLinearImpulse(force*locationWorld, ballBody->GetWorldCenter());
                }

如果我删除其他部分,则跳转将执行完成,但释放按钮后精灵主体无法停止。

那么该怎么办??

提前致谢

4

1 回答 1

2

我得到了答案。我我们创建身体并首先检查它是圆形还是多边形,因为圆形身体不能有滚动阻力,所以在这种情况下,我们不需要手动停止使用 linearVelocity 为 0。使用摩擦所有身体自动停止除了圆形身体。

于 2012-08-31T06:23:20.083 回答