AndEngine TexturePacker的使用

      我们都知道OpenGL 1载入纹理图片的时候,内存都是会自动扩张到2的n次方,如素材资源是64*65px的话,将会按照64*128的规格载入图片,将会浪费掉一部分的空间。因此,如果图片数量过多的话,这个浪费掉的数量是非常之多的,另外一方面就是I/O的操作也会非常的频繁,导致效率低下。而TexturePacker工具则帮我们解决了这方面的问题。

  •       下载安装

      官方网站:http://www.codeandweb.com/texturepacker

      分免费版和收费版两个版本,免费版基本能满足常用的功能。

      安装的话,按照步骤一步一步往下就是了,没什么需要注意的地方

  •       软件使用

      安装好软件后打开TexturePackerGui,软件大致分为三个区最左边为参数配置区,中间为预览区,最右边为图片素材区。点击Add Sprite或Add Folder按钮或者直接拖拽图片进去即可添加图片素材。

image

      左边的设置区域中,常用的设置仅仅是Output相关设置。

image

      Andengine GLES1是基于OpenGl 1绘制图片的,软件经默认帮我们把2的幂次方选项选上了,如果是GLES2的话,貌似可以不用。

image

      另外,根据各自需要,选择是否要切除原图空白处以节省空间。

image

     

  •       使用示例

      以上配置完毕之后,点击Publish即可生成相应的xml配置文件、合并的贴图文件以及对应的java id文件。下面来看如何使用这个生成好的SpriteSheet。

      引入命名空间:

import org.andengine.util.texturepack.TexturePack;
   import org.andengine.util.texturepack.TexturePackLoader;
   import org.andengine.util.texturepack.TexturePackTextureRegionLibrary;
   import org.andengine.util.texturepack.exception.TexturePackParseException;
 

      首先,创建TexturePacker实例对象并加载:

TexturePack spriteTexturePack = new TexturePackLoader(mActivity.getAssets(), mActivity.getTextureManager()).loadFromAsset("xml文件在Assets中的文件路径,如:spitesheets/menu.xml", "合并的贴图文件在Assets中的目录路径,如spitesheets/");
spriteTexturePack.loadTexture();
注意,查看xml文件,可以发现xml文件中已经包含了合并后贴图文件的文件名,故loadFromAsset的第二个参数仅需目录路径即可。
 
然后,通过TexturePacker创建TexturePackTextureRegionLibrary对象:
TexturePackTextureRegionLibrary libraty = spriteTexturePack.getTexturePackTextureRegionLibrary();
 
最后,通过TexturePackTextureRegionLibrary对象即可通过生成的java文件中的id获取到对应的TexturePackTextureRegion,如:
TextureRegion textureRegion = libraty.get(Menu.MENU_MAP_WORLD_ID);

 

 

 

转载于:https://www.cnblogs.com/kylin17/archive/2013/04/25/3042575.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值