Android libgdx-box2d插值不';工作不好

Android libgdx-box2d插值不';工作不好,android,box2d,libgdx,interpolation,Android,Box2d,Libgdx,Interpolation,我正在用libgdx和box2d开发一款Android游戏。 我的问题是box2d中实体的插值效果不好。。。身体有点迟钝。主体在没有插值的情况下是“较少滞后的”。 以下是我的代码部分: public void gameRunning() { mAccumulator += Gdx.graphics.getDeltaTime(); if(mAccumulator > 1f) { mAccumulator = 1f; } while(

我正在用libgdx和box2d开发一款Android游戏。 我的问题是box2d中实体的插值效果不好。。。身体有点迟钝。主体在没有插值的情况下是“较少滞后的”。 以下是我的代码部分:

public void gameRunning()
{
    mAccumulator += Gdx.graphics.getDeltaTime();

    if(mAccumulator > 1f)
    {
        mAccumulator = 1f;
    }

    while(mAccumulator >= BOX_STEP)
    {
        resetSmooth();
        mWorld.step(BOX_STEP, BOX_VELOCITY_ITERATIONS, BOX_POSITION_ITERATIONS);
        mAccumulator -= BOX_STEP;
    }

    mWorld.clearForces();
    smooth();
}

public void smooth()
{
    float ratio = mAccumulator/BOX_STEP;
    float oneMinusRatio = 1.f-ratio;

    mSmoothedX = ratio*mBowl.getPosition().x+oneMinusRatio*mPreviousX;
    mSmoothedY = ratio*mBowl.getPosition().y+oneMinusRatio*mPreviousY;

    mBowl.setTransform(mSmoothedX, mSmoothedY, 0f);
}

public void resetSmooth()
{
    mSmoothedX = mPreviousX; 
    mSmoothedY = mPreviousY; 

    mPreviousX = mBowl.getPosition().x;
    mPreviousY = mBowl.getPosition().y;
}
问题在哪里?
对不起,我的英语不好,先谢谢你……:)

您不应该像那样移动box2d实体,而是应用力/脉冲。否则,它们在物理模拟中的行为将不正确

另外,您的插值实现在我看来非常奇怪,为什么不使用

例如:

    mSmoothedX = Interpolation.linear.apply(startx, endx, <time>);
mSmoothedX=Interpolation.linear.apply(startx,endx,);
if(mAccumulator>1f)为什么会出现
if(mAccumulator>1f)
块?