Libgdx纹理区域到纹理

时间:2013-12-26 14:40:07

标签: java textures libgdx

我想在我的图像上使用setFilter(TextureFilter.Linear, TextureFilter.Linear);,取自textureAtlas。当我使用

TextureRegion texReg = textureAtl.findRegion("myImage");
Sprite = new Sprite(texReg);

它工作正常,但如果我尝试

TextureRegion texReg = textureAtl.findRegion("myImage");
Texture myTexture = new Texture(texReg.getTexture());
myTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
Sprite mySprite = new Sprite(myTexture);

mySprite包含所有textureAtlas图像。如何设置纹理单一图像来自textureAtlas?

1 个答案:

答案 0 :(得分:4)

你的最后一行应该是:

Sprite mySprite = new Sprite(texReg);

纹理可以表示单个图像或多个图像(纹理图集)。当存在多个图像时,每个图像都是其纹理区域中的位置。您只能对整个纹理应用滤镜,因此对其中的所有图像都应用滤镜。如果您只想将它​​应用于单个图像,则需要使用单独的纹理。

以下是您对代码的处理方式:

// get the image for your game (or whatever) object
TextureRegion texReg = textureAtl.findRegion("myImage");
// get the texture that is the 'container' of the image you want
Texture myTexture = new Texture(texReg.getTexture());
// apply filtering to the entire texture and all the images
myTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
// set the entire texture as the image for your sprite (instead of only a single region)
Sprite mySprite = new Sprite(myTexture);