2017-01-08 1 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がintではなくfloatであることを確認してください。

+0

ありがとう、それは働いた – tashtoons

関連する問題