我想用libGDX開發一個簡單的2D側滾動遊戲。libGDX渲染TextureRegion渲染得太多
我的世界包含許多不同的64x64像素塊,這些塊由SpriteBatch使用相機繪製以適應屏幕。我的640x640px資源文件包含所有這些圖像。塊資源位於我的資源文件中的(0,0),(0,64),(64,0)...等等。 當我的應用程序啓動,我加載的紋理和創造了許多不同的TextureRegions:
texture = new Texture(Gdx.files.internal("texture.png"));
block = new TextureRegion(texture, 0, 0, 64, 64);
block.flip(false, true);
// continue with the other blocks
現在,當我使我的世界裏,一切似乎都很好。但是某些塊(大約佔我的塊的10%)被繪製爲好像TextureRegion的矩形位置錯誤 - 它將上面(在資源紋理中)塊的紋理的最底部的像素行繪製爲其最上面的像素行。大部分塊都被正確渲染,我檢查了我多次輸入了正確的位置。
奇怪的是,當我在我的電腦上啓動遊戲 - 而不是我的Android設備 - 紋理繪製正確!
在搜索解決方案時,很多人都提到過濾器,但Linear和Nearest都不適合我。 :(
希望我能夠在一個可訪問的方式來解釋這個問題,你有什麼想法如何解決(=如何繪製只是我想畫的紋理區域)!
最好的問候
編輯:的錯誤並只出現在某些位置當我得出兩個模塊在不同位置相同的紋理,其中一人繪製正確,另一種是不。我不明白這一點。 ...
我想不出解決辦法,但我建議你看看LibGdx紋理打包器。一切都將被自動打包和解壓縮,我不認爲你會有這個奇怪的繪圖問題。 –
聽起來像一個紋理過濾問題。無論是那樣,或者你將浮點座標轉換爲程序中某個地方的整數,並且意外截斷(舍入),因此63.99999變爲63. –