Andengine 学习笔记- 加载图片的方法
来源:互联网 发布:南瑞继保软件研发 编辑:程序博客网 时间:2024/04/29 05:12
在Andengine的世界里,一切看到的对象都是Entity,而Entity需要由图片来装饰才是我们真正看到的东西。这里的图片在Andengine里就是Texture(通常翻译为纹理,不过LZ不太喜欢这个翻译,太生硬)。
这里总结一下将图片资源Load到内存成为Texture的几种情况。
1、 Load单个的图片
首先要生成一个Atlas(纹理地图), 这个地图可以容纳很多的sub-texture, LZ现在不是太理解这个东西存在的意义,不过我猜测是用来提高效率的。有了Atlas以后就可以将图片Load到Altas中,并且生成一个Texture的引用。
这里使用的是BitmapTextureAtlasTextureRegionFactory这个工厂类。 这个工厂类里有很多静态方法,可以让我们从res资源文件夹、asset文件夹、sd卡加载我们想要的图片。
2、 从已有的Texture中抽取
我们也会遇上这样的情况, 我们已经load了一张很大的图片包含了你想要的图片(类似于地图), 这时可以直接从当前的texture中根据坐标来抽取子texture。
这里的操作是通过TextureRegionFactory这个工厂类里的静态方法完成的。
3、 从压缩的图片中加载(pvr)
Anengine的扩展包里有一个PVRCCZTexture类,可以以流的形式将压缩图片加载入内存,之后的操作,就如同2中,只要直接从texture中抽取想要的图片就可以了。
4、 使用图片打包工具(texturepacker)
TexturePacker是一个很方便的图片打包工具,它可以将小图片放到一个大图里面,这样可以尽可能的减少图片所占用的体积。并且可以打成多种引擎所支持的格式,这里我们只看Andengine支持的格式。
使用TexurePacker打出来的文件分为三个部分,一个部分是图片源文件,这里可以是png格式,也可以是经压缩过的pvr.czz格式,事实上,格式不重要,只要源文件存在就行;第二个部分是一个xml配置文件,这个文件里会记录每个sub-texture的坐标,还有压缩格式等一些元信息,以便我们加载的时候使用;第三个部分是一个interface类,这里记录的是读取texture的时候需要用到的各个texure的id。
加载过后,我们就可以用mSpritesheetTexturePackTextureRegionLibrary根据id来获取各个texture
这里总结一下将图片资源Load到内存成为Texture的几种情况。
1、 Load单个的图片
首先要生成一个Atlas(纹理地图), 这个地图可以容纳很多的sub-texture, LZ现在不是太理解这个东西存在的意义,不过我猜测是用来提高效率的。有了Atlas以后就可以将图片Load到Altas中,并且生成一个Texture的引用。
这里使用的是BitmapTextureAtlasTextureRegionFactory这个工厂类。 这个工厂类里有很多静态方法,可以让我们从res资源文件夹、asset文件夹、sd卡加载我们想要的图片。
2、 从已有的Texture中抽取
我们也会遇上这样的情况, 我们已经load了一张很大的图片包含了你想要的图片(类似于地图), 这时可以直接从当前的texture中根据坐标来抽取子texture。
这里的操作是通过TextureRegionFactory这个工厂类里的静态方法完成的。
3、 从压缩的图片中加载(pvr)
Anengine的扩展包里有一个PVRCCZTexture类,可以以流的形式将压缩图片加载入内存,之后的操作,就如同2中,只要直接从texture中抽取想要的图片就可以了。
4、 使用图片打包工具(texturepacker)
TexturePacker是一个很方便的图片打包工具,它可以将小图片放到一个大图里面,这样可以尽可能的减少图片所占用的体积。并且可以打成多种引擎所支持的格式,这里我们只看Andengine支持的格式。
使用TexurePacker打出来的文件分为三个部分,一个部分是图片源文件,这里可以是png格式,也可以是经压缩过的pvr.czz格式,事实上,格式不重要,只要源文件存在就行;第二个部分是一个xml配置文件,这个文件里会记录每个sub-texture的坐标,还有压缩格式等一些元信息,以便我们加载的时候使用;第三个部分是一个interface类,这里记录的是读取texture的时候需要用到的各个texure的id。
- final TexturePack spritesheetTexturePack = new TexturePackLoader(this.getTextureManager(), "gfx/spritesheets/").loadFromAsset(this.getAssets(), "texturepackerexample.xml");
- spritesheetTexturePack.loadTexture();
- this.mSpritesheetTexturePackTextureRegionLibrary = spritesheetTexturePack.getTexturePackTextureRegionLibrary();
加载过后,我们就可以用mSpritesheetTexturePackTextureRegionLibrary根据id来获取各个texture
- Andengine 学习笔记- 加载图片的方法
- Andengine 学习笔记 - 图片处理
- 游戏引擎AndEngine总结(九):三种加载图片资源的方法
- andengine--图片资源加载方式
- andengine--图片资源加载方式
- AndEngine引擎的学习笔记(一)
- AndEngine引擎的学习笔记(二)
- AndEngine引擎的学习笔记(三)
- AndEngine学习笔记
- AndEngine学习笔记(一)
- AndEngine学习笔记(二)
- AndEngine学习笔记--1
- andengine的convertLocalCoordinatesToSceneCoordinates方法
- AndEngine学习笔记10-Physics(andengine中使用Box2D的PhysicsWorld介绍)
- AndEngine加载图片资源(五)
- AndEngine学习笔记(三)
- AndEngine学习笔记15-Other
- iOS开发学习笔记之swift3.0几种加载网络图片的方法
- requestAnimate 绘制气泡
- 说说我用过的博客系统
- 在github Pages上部署octopress搭建个人博客系统
- 闲时扯谈 - Silverlight母版页的实现
- Andengine 学习笔记 - 图片处理
- Andengine 学习笔记- 加载图片的方法
- 学习android开发中遇到的一些小问题
- Mac Lion 懒人板安装教程
- logback触发器日志滚动
- python学习笔记
- 要去看的网站
- delete delete[]
- 关于线程的几个面试题
- opencv1.0及在VC6.0下的配置