一段时间后,libGDX滚动背景变得不稳定

时间:2017-01-08 09:31:20

标签: java libgdx

我是libgdx的新手所以请耐心等待。我正在尝试创建一个2D运行游戏,并一直在尝试实现滚动背景。到目前为止,我已经能够获得滚动的背景,但一段时间后它会变慢并变得不稳定。以下是我实施它的方法:

在我的创建方法

bg = new Texture(Gdx.files.internal("bg1.png"));
bg.setWrap(Texture.TextureWrap.Repeat, Texture.TextureWrap.Repeat);

在我的渲染方法中我有

try {
    sourceX += 15;
} catch (Exception e){
    sourceX=0;
}
game.batch.draw(bg, 0, 0, sourceX, 0, Gdx.graphics.getWidth(),Gdx.graphics.getHeight());

这似乎有效,但过了一段时间它变得波涛汹涌。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

当您的数字达到更高的数量级时,浮点精度可能会下降。通过将其保持在低范围来保持精度:

sourceX = (sourceX + 15f) % bg.getWidth();

但是,如果你想在所有设备上保持恒定的速度,你还需要涉及增量时间和速度:

sourceX = (sourceX + Gdx.graphics.getDeltaTime() * 900f) % bg.getWidth();

确保sourceX是浮点数,而不是int。