8

对于不同的状态,我有几个具有不同纹理的对象,所以我使用了一个TextureAtlas用 TexturePacker 制作的对象,并调整了TextureRegion我需要它的大小。我必须调整大小,因为我不仅要同时支持 720p 和 1080p,而且我的一些对象是瓷砖或光标,它们会根据棋盘的宽度和高度调整大小,因为这可能会在我的游戏中发生变化,而棋盘将始终占据屏幕的相同百分比。

使用 a Texture,我可以这样做:

texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);

但是,当我使用 a 时TextureRegion,没有设置过滤器的选项。这导致这些TextureRegions 大小调整为锐利、块状和锯齿状。这不是很好的缩放比例,而且似乎根本没有抗锯齿。

这非常令人沮丧,因为我在制作图形方面已经够糟糕了,现在即使我喜欢我所做的东西,它看起来也很糟糕。我该怎么做才能复制TextureFilter.Linear使用 aTextureRegion而不是 a的效果Texture

4

2 回答 2

14

您可以打开 .atlas 文件并将filter值更改为Linear, Linear. 或者您可以使用region.getTexture()来访问该区域所属的纹理,然后调用setFilter(...)它。

于 2013-07-15T22:29:21.110 回答
0

如果您使用 gdx-tools 打包,则必须设置选项

Settings settings = new Settings();
    settings.paddingX = 2;
    settings.paddingY = 2;
    settings.minWidth = 32;
    settings.minHeight = 32;
    settings.maxHeight = 1024;
    settings.maxWidth = 1024;
    settings.stripWhitespaceX = true;
    settings.stripWhitespaceY = true;
    settings.filterMag = TextureFilter.Nearest;
    settings.filterMin = TextureFilter.Nearest;
    settings.flattenPaths = true;

     TexturePacker2.process(settings, "input directory", "output directory","packName");

    System.out.println("PackTextures->main finished.");

或者,如果您使用的是 texture-packer-gui.jar,然后勾选线性(最小)和线性(最大)复选框,您就可以开始了……

于 2013-07-16T05:47:44.197 回答