【发布时间】:2013-06-18 08:32:56
【问题描述】:
以前我使用简单的Texture 来制作基于 sprite 的动画,但它不支持不是 2 次方的图像。TexturePacker 提供了一次加载所有图像的能力,然后从imageatlas 获取所需的图像。
也就是说,我遵循了 Libgdx wiki 中的几个教程,并且在加载部分之前它运行良好。但我想在渲染过程中,它会引起一些问题。这就是我将图像加载到桌面项目中的texturepacker 的方式:
private static final String INPUT_DIR = "../Drop-Android/assets/images";
private static final String OUTPUT_DIR = "../Drop-Android/assets/image-atlases";
private static final String PACK_FILE = "pages-info";
public static void main(String[] args){
LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
cfg.title = "Drop";
cfg.width = 800;
cfg.height = 480;
Settings settings = new Settings();
settings.maxWidth = 512;
settings.maxHeight = 512;
TexturePacker2.process(settings, INPUT_DIR, OUTPUT_DIR, PACK_FILE);
new LwjglApplication(new Drop(), cfg);
}
问题:我必须在 images-atlases 文件夹中手动创建pages-info 即PACK_FILE 吗?如果我不这样做,它会抛出File not found exception。
我碰巧在image-atlases 文件夹中创建了pages-info 文件,并生成了以下文件:pages-info.png 和'pages-info.atlas'。虽然pages-info 文件为空,但.png 和.atlas 文件分别具有图像和JSON 图像数据。
这是我用来从pages-info 文件(为空)中提取textureregions 的方法:
TextureAtlas ta = new TextureAtlas(Gdx.files.internal("image-atlases/pages-info"));
imageOneRegion = ta.findRegion("image1.png");
imageTwoRegion = ta.findRegion("image2.png");
正如预期的那样,它在绘制textureregion 时返回一个nullpointerexception。我的想法在这里用完了,有什么帮助和想法吗?
【问题讨论】:
标签: android libgdx textures texturepacker