减慢精灵的运动速度

时间:2013-12-16 20:38:25

标签: c++ sprite cocos2d-x

在我的场景类中,我覆盖了更新函数,并按照建议here在onEnter()方法中调用scheduleUpdate()。所以在更新函数中,我调用了我的图层类的更新,它应该更新我的精灵:

void View::update(float dt)
{
    world->Step(dt, 10, 10);
    for(b2Body *b = world->GetBodyList(); b; b=b->GetNext())
    {
        if(b->GetUserData() != NULL  && b->GetType() != b2_kinematicBody))
        {
            cocos2d::CCSprite *data = (cocos2d::CCSprite*)b->GetUserData();
            data->setPosition(ccp(b->GetPosition().x * PTM_RATIO, b->GetPosition().y * PTM_RATIO));
            data->setRotation(-1 * CC_RADIANS_TO_DEGREES(b->GetAngle()));
        }
    }

}

此刻,唯一的运动因重力而下降。然而,角色移动得如此之快。它几乎瞬间撞到了地板上。有没有办法减缓这种情况? 当我使用this tutorial作为目标c时,球的下落速度要慢得多。

2 个答案:

答案 0 :(得分:0)

你是否正确设定了角色的质量?尽量减少它。另外,我建议你使用一个小的wrapper,这样可以更容易地使用box2d和cocos2d-x。

答案 1 :(得分:0)

发现问题。我将精灵的位置设置到屏幕的中心,但是我将身体的位置设置到底部。所以在第一帧中,精灵立即出现在底部。

所以如果有人有同样的问题:检查你身体的位置。不只是精灵的位置。