我想用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. –