TexturePacker是AndEngine的扩展包之一,其主要的作用在于开发时方便加载大量的精灵动画资源!若要在AndEngine中使用这种加载资源的模式,还要准备TexturePacker文件生成工具,点击下载
(PS:这个工具是收费的,当然简单的游戏用免费提供的功能应该就可以了!)
1.TexturePacker工具的使用:
根据系统的不同下载不同的版本,这个用法很简单,基本上导入几个帧图片就能明白其工作原理,需要注意的是Output中的Data Format要选择AndEngine,还有Border padding,Shape Padding之类的,如果之前都设置的0,那这里也别忘了,如果不设置0,取tile图片的时候记得要加上padding值,不然可能会有些偏差!当感觉做的差不多了,就export吧!点击File->Export Data和File->Export Image,ok,这就是AndEngine所需要的!
(PS:TexturePacker工具生成3个文件,一个.xml作为索引,一个.png是tile图的组合,一个是.java文件用来作为宏变量查找用)
2.AndEngine对TexturePacker的基本用法:
(PS:别忘了加入AndEngineTMXTiledMapExtension这个扩展包)
原理:根据.xml文件将资源全部加载并交给TexturePackTextureRegionLibrary对象管理,可以根据.java文件中的宏变量作为索引,得到具体的tile图片
try
{
TexturePackLoader texturePackLoader = new TexturePackLoader(getTextureManager());
final TexturePack texturePack = texturePackLoader.loadFromAsset(getAssets(), "mole.xml");
texturePack.loadTexture();
texturePackTextureRegionLibrary = texturePack.getTexturePackTextureRegionLibrary();
}
catch (TexturePackParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
TextureRegion textureRegion = texturePackTextureRegionLibrary.get(MoleSheet.T6_ID);
Sprite mole = new Sprite((CAMERA_WIDTH - textureRegion.getWidth()) / 2,
(CAMERA_HEIGHT - textureRegion.getHeight()) / 2,
textureRegion, getVertexBufferObjectManager());
3.AnimatedSprite对象如何使用TexturePacker资源
使用TexturePacker的原因就是为了方便加载大量的动画帧图片资源,之所以用到很多动画帧图片是因为有AnimatedSprite对象的存在!
加载的过程和步骤2是一样的,不同的是使用的方法,
TiledTextureRegion tiledTextureRegion = TiledTextureRegion.create(texturePack.getTexture(),
textureRegion.getSourceX(), textureRegion.getSourceY(),
textureRegion.getSourceWidth() * COLUMNS, textureRegion.getSourceHeight() * ROWS,
COLUMNS, ROWS);
原理也很简单,在我们加载好的Texture中,我们裁剪一部分作为精灵动画需要的资源,关键是设置好其左上角起点,宽高,列,行数即可
(PS:COLUMNS和ROWS是我裁剪区域作为TiledTextureRegion要设置的列数和行数)
效果图:
好了,介绍完了,要看的东西还很多,我附上源码吧!
点击下载