问题是由于在应用双线性过滤时 TextureAtlas 的黑色背景溢出到图像上造成的。解决方法是将最左边和最右边的 1px 线加倍,使出血具有正确的颜色。这是一个令人讨厌的修复,应该证明这确实是问题所在,但是它将加载背景所需的时间增加了三倍,因此它对生产代码没有用处。当您为背景创建 TextureAtlas 时,请执行以下操作:
BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.backgroundBitmapTexture, this, "background.png", 0, 0);
BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.backgroundBitmapTexture, this, "background.png", 2, 0);
this.backgroundTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.backgroundBitmapTexture, this, "background.png", 1, 0);
这样做是加载纹理三次,前两次向左和向右移动 1 个像素。第三个调用在两者之间创建实际的纹理区域。