box2d引力未被应用

时间:2012-11-17 14:24:50

标签: iphone cocos2d-iphone box2d

我有一个box2d世界,视图已锁定在landscapeLeft中。我试图通过向左或向右倾斜手机来移动身体,这是当前正在工作的。当手机在landscapeRight中倾斜启动关卡时,我遇到问题。在这种情况下,重力不再被施加,我应该移动的身体静止不动。我相信这是一个摩擦问题(尽管我的身体移动和平台继续前进都是0摩擦),因为当我设置平台的恢复时,我的身体正在靠近1.0(所以我的身体现在正在限制很少到位)重力总是正确应用。这不是box2d问题,因为我只有1个平台可以让我的身体继续前进,而且它不会移动到平台的任何位置。这是我的加速代码。

   - (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate (UIAcceleration*)acceleration
{
    if (acceleration.x < 0) {
        b2Vec2 gravity(-acceleration.y * 15, -8);
        world->SetGravity(gravity);
    }
}

这是我的初始代码

// Define the gravity vector.
    b2Vec2 gravity;
    gravity.Set(0.0f, -10.0f);

    // Do we want to let bodies sleep?
    // This will speed up the physics simulation
    bool doSleep = true;

    // Construct a world object, which will hold and simulate the rigid bodies.
    world = new b2World(gravity, doSleep);

    world->SetContinuousPhysics(true);

1 个答案:

答案 0 :(得分:0)

在这篇文章中查看答案 - Accelerometer based movement in Cocos2D game

只需使用cocos2D精灵进行移动,并将精灵位置的值用于box2D体。