其他分享
首页 > 其他分享> > AndEngine TexturePacker的使用

AndEngine TexturePacker的使用

作者:互联网

原文链接:http://www.cnblogs.com/kylin17/archive/2013/04/25/3042575.html

      我们都知道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

标签:xml,文件,org,util,AndEngine,TexturePacker,使用,import,TexturePackTextureRegionLibrar
来源: https://blog.csdn.net/weixin_30940783/article/details/96696546