CCSprite奇怪的运动

时间:2014-05-27 22:06:04

标签: c++ cocos2d-x

我正在使用cocos2d-x编写游戏,我遇到了这样的问题: 当精灵移动时,似乎它们有点弹跳......

在游戏中,物体从上到下以一定的速度下降。 所以这个对象被添加到CCNode上,我只改变它的Y位置,如下所示:

 void GamePlayBase::updateParallax(float delta) {
        parallaxNode->setPositionY(parallaxNode->getPositionY() - GameRunningSpeed * delta);
    }

从更新函数调用(scheduleUpdate()); 此外,每台设备的fps总是60,但在iPhone 4或某些Android设备上deltaTime介于0.002到0.009之间。 我做了一些优化,如果屏幕上看不到对象,我会停用它的物理体并隐藏整个对象。

编辑: 我改变了视差更新以获得圆形位置:

  parallaxNode->setPosition(ccp(parallaxNode->getPositionX(),
                                  floor(parallaxNode->getPositionY() - GameRunningSpeed * delta + 0.5)));

并且还修正了时间步长:

void GamePlayBase::update(float dt)
{    
    static float ac = 0.0;
    static float c = 1./60;
    if (dt > c) {
        ac += dt - c;
        dt = c;
    }else {
        float t = c - dt;
        t = min(t, ac);
        ac -= t;
        dt += t;
    }

    updateGameObjects(dt);
}

它几乎是固定的,但仍然有一点生涩的运动..

0 个答案:

没有答案