一些阅读引导我了解了
TextureAtlas 和 TexturePacker的描述,它们将一堆小图像组合成一个大图像。这使得它们更快地加载和绘制。正如
Vikalp所说的那样, 如果您不关心性能差异,您也可以禁用有关图像尺寸的规则。
Texture.setEnforcePotImages(false)
您可以在Udacity的HTML5游戏课程中了解更多关于游戏图集(game atlases)的知识。
要创建自己的图集,您可以开始使用TexturePacker GUI, 但我建议最终创建一个命令行项目来自动打包您的原始图片。
我发布了一个示例项目,它使用了Bucket和Raindrop教程的示例代码,并转而使用了TextureAtlas。现在,我先装载图集,然后再从图集装载图片。
atlas = new TextureAtlas(Gdx.files.internal("atlas/plank.pack"))
dropImage = atlas.findRegion("images/baby")
bucketImage = atlas.findRegion("images/bucket")
我发现一个问题是在HTML项目中图片无法加载。后来我发现可以通过将所有图片放入子文件夹来解决这个问题。
我创建了一个新项目来保存TexturePacker和之后想要添加的任何单元测试。TexturePacker看起来像这样:
package com.github.donkirkby.plank;
import com.badlogic.gdx.tools.imagepacker.TexturePacker2;
public class PlankPacker {
public static void main (String[] args) throws Exception {
TexturePacker2.process(
"raw-assets",
"../plank-game-android/assets/atlas",
"plank.pack");
}
}