我的程序打包了一系列图像并将它们输出到 aste.png 和 aste.atlas 中。我的打包代码如下:
public void pack(){
System.out.println("Packing should not be ordinarily called! If you did not have explicit intentions of Packing, please check ImageAtlas constructor.");
Settings settings = new Settings();
settings.maxWidth = 512;
settings.maxHeight = 512;
TexturePacker2.process(settings, "E:/Files/Eclipse Projects/StarFighters/StarFighters-android/assets/sprites/" + name,
"E:/Files/Eclipse Projects/StarFighters/StarFighters-android/assets/sprites/", name.substring(0,4));
}
我不需要每次运行程序时都打包,这就是为什么我可以摆脱绝对文件路径(我只会在运行桌面并添加新图像时打包),但是,我只使用绝对文件路径因为我不知道该怎么做。我正在使用 android 资产文件夹。(桌面链接到 android 资产文件夹)当我从桌面版本运行它时,它试图转到桌面路径,当我需要它使用 Gdx.files.internal 为我处理的资产路径时。(这个问题对我的程序的功能不是必需的)
打包图像后,我将执行以下操作:
atlas = new TextureAtlas(Gdx.files.internal("sprites/aste.atlas"));
public Texture getTex(String imgname){
return atlas.findRegion(imgname).getTexture();
}
当我尝试 getTex(); 时,我将“sma_a2”作为 imgname 传递;
我的 assets/sprites/asteroids 目录有以下图片: big_a1.png big_a2.png med_a1.png med_a2.png sma_a1.png sma_a2.png 都成功打包到aste.png和aste.atlas
我的问题是,无论我在收到的图像中传递什么 fname 都是整个 aste.png
我也很好奇为什么我会使用包而不是图像,因为我从图像开始,然后打包它们,只是为了再次获取图像..