游戏引擎Andengine总结(五):TexturePacker的使用

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要设置的列数和行数)


效果图:

游戏引擎Andengine总结(五):TexturePacker的使用_第1张图片

游戏引擎Andengine总结(五):TexturePacker的使用_第2张图片


游戏引擎Andengine总结(五):TexturePacker的使用_第3张图片


好了,介绍完了,要看的东西还很多,我附上源码吧!

点击下载


你可能感兴趣的:(游戏引擎Andengine总结(五):TexturePacker的使用)