在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。
final TexturePack spritesheetTexturePack = new TexturePackLoader(this.getTextureManager(), "gfx/spritesheets/").loadFromAsset(this.getAssets(), "texturepackerexample.xml");
spritesheetTexturePack.loadTexture();
this.mSpritesheetTexturePackTextureRegionLibrary = spritesheetTexturePack.getTexturePackTextureRegionLibrary();
加载过后,我们就可以用mSpritesheetTexturePackTextureRegionLibrary根据id来获取各个texture
分享到:
相关推荐
官方版本,亲测可用
AndEngine游戏 DeliveryBoy 源代码,可以用来做AndEngine游戏实例教程进行参考
Andengine-Android-Studio 用于游戏引擎、流行标题和引擎的 Android Studio 模块。
AndEngine 2013-3-12 最新Jar包,直接拉进项目libs即可,可查看源代码
Android-游戏引擎AndEngine范例-源码
AndEngine 2013-2月 最新Example,直接导入Eclipse即可,API15, 环境 Android 4.0.3
AndEngine_分析之二-----BaseGameActivity. 中文
AndEngine_分析之三-----AsyncTask_BaseActivity备忘
AndEngine游戏开发指南-初级篇.pdf android基于AndEngine游戏引擎开发
#AndEngine准备使用骨架 ##来自Charles Smartt Jr.和Jordan Dickow ##摘要以下是andEngine和andEnginePhysicsBox2DExtension的可编译就绪源代码集,仅在Android Studio中使用。 JNI本机扩展已被编译并包含在内,而...
安卓开发-andengine中直接加载多张小图片合成一张大图片生成动画精灵
andengine中直接加载多张小图片合成一张大图片生成动画精灵.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
AndEngine_分析之一----载入资源 这个是英文的
AndEngine基于libGDX框架开发,使用OpenGL ES进行图形绘制,底层使用C++编写,通过JNI调用来实现,因此比较高效,功能强大。同时集成了Box2D物理引擎,因此能实现一些较为复杂的物理效果。在Rokon(另一个Android 2D游戏...
Android高级应用源码-andengine中直接加载多张小图片合成一张大图片生成动画精灵.zip
andengine中直接加载多张小图片合成一张大图片生成动画精灵
Android应用源码之andengine中直接加载多张小图片合成一张大图片生成动画精灵
andengine中直接加载多张小图片合成一张大图片生成动画精灵
Android andengine中直接加载多张小图片合成一张大图片生成动画精灵源码.zip
最新的AndEngine-GLES2源码,协助你更快更轻松的开发安卓游戏。