我希望使用libGDX开发一个简单的2D横向卷轴游戏。
我的世界包含许多不同的64x64像素块,这些块通过SpriteBatch使用相机绘制到屏幕上。我的640x640px资源文件包含所有这些图片。块纹理在我的资源文件中被定位为(0, 0), (0, 64), (64, 0)等等。 当我的应用启动时,我加载纹理并创建许多不同的TextureRegions:
现在,当我渲染我的世界时,一切似乎都很好。但是一些块(大约10%的块)的绘制方式好像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的矩形位置不正确 - 它会将上一个块纹理中最底部的像素行绘制为其顶部像素行。大多数块都被正确地渲染了,我检查了多次并确保输入了正确的位置。
奇怪的是,当我在电脑上而不是安卓设备上启动游戏时,纹理被正确地绘制!
在寻找解决方案时,许多人提到了过滤器,但是无论是线性还是最近的过滤器都对我没有用。 :(
希望我能以易于理解的方式解释问题,并且您有任何想法如何解决它(即如何仅绘制我要绘制的纹理区域)!
最好的问候
编辑:错误只出现在某些位置。当我在不同位置绘制具有相同纹理的两个块时,其中一个被正确绘制,而另一个则没有...我不明白....