2017-01-08 46 views
0

我是libgdx的新手,請耐心等待。我試圖創建一個2D運行遊戲,並試圖實現滾動背景。到目前爲止,我已經能夠獲得滾動的背景,但過了一段時間,它會變慢並變得波濤洶涌。這裏是我是如何實現它:libGDX滾動背景在一段時間後變得波濤洶涌

在我創建方法

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

你是什麼意思的波濤洶涌? fps下降?用'FPSLogger'檢查你的成幀器,也許你也有內存泄漏 – Moira

+1

,爲什麼你在try塊中有'sourceX + = 15'?不能拋出異常 – Moira

+0

它開始口吃或滯後。它將不再是一個平穩的轉換 – tashtoons

回答

1

當您的數字達到更高的數量級時,浮點精度可能會下降。通過在低範圍內保持它保持你的精度:

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

但是,還需要涉及到增量時間,如果你想恆速速度是相同的上的所有設備:

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

確保sourceX是一個浮點數,而不是一個整數。

+0

謝謝,它的工作 – tashtoons

相關問題