我是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());
这似乎有效,但过了一段时间它变得波涛汹涌。任何建议将不胜感激。
答案 0 :(得分:1)
当您的数字达到更高的数量级时,浮点精度可能会下降。通过将其保持在低范围来保持精度:
sourceX = (sourceX + 15f) % bg.getWidth();
但是,如果你想在所有设备上保持恒定的速度,你还需要涉及增量时间和速度:
sourceX = (sourceX + Gdx.graphics.getDeltaTime() * 900f) % bg.getWidth();
确保sourceX
是浮点数,而不是int。