在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的基本使用、游戏逻辑构建以及资源管理等多个方面。AndEngine是一款流行的开源Android游戏开发引擎,它...
官方版本,亲测可用
Andengine-Android-Studio是将Andengine集成到Android Studio的模块,方便开发者在现代的Android开发环境中进行游戏开发。 Andengine的主要特点包括: 1. **轻量级**:Andengine的体积小巧,性能高效,对设备资源...
AndEngine 2013-3-12 最新Jar包,直接拉进项目libs即可,可查看源代码
AndEngine 2013-2月 最新Example,直接导入Eclipse即可,API15, 环境 Android 4.0.3
总之,AndEngine范例源码是学习AndEngine游戏开发的宝贵资源,通过深入研究这些示例,开发者可以快速掌握AndEngine的使用技巧,提升自己的游戏开发能力。同时,也可以借此了解2D游戏开发的基本流程和常见问题的解决...
在Android开发中,图片加载和缓存是性能优化的关键环节,特别是在使用AndEngine这样的游戏引擎时,高效地处理图片资源尤为重要。AndEngine是一款强大的2D游戏开发库,它提供了丰富的功能,包括精灵(Sprite)的创建...
在AndEngine中,我们可以使用`Texture`对象来加载图片资源,然后通过`TextureRegion`来表示图片的某个区域。当需要将多张小图片合并为一张大图时,我们可以创建一个`TextureAtlas`。`TextureAtlas`允许我们将多个`...
3. `onLoadResources()`方法应该包含所有与资源加载相关的代码,例如加载图片、音频、纹理等。每个GameScene子类可以重写此方法以加载其特有的资源。 4. `onLoadScene()`方法用于在资源加载完成后初始化场景,设置...
AndEngine-GLES2是一款专为Android平台设计的开源2D游戏引擎,它为开发者提供了高效且易用的工具,用于创建各种2D游戏。这款引擎以其简洁的API和丰富的功能而受到开发者的欢迎,尤其值得一提的是,曾经风靡全球的...
#AndEngine准备使用骨架 ##来自Charles Smartt Jr.和Jordan Dickow ##摘要以下是andEngine和andEnginePhysicsBox2DExtension的可编译就绪源代码集,仅在Android Studio中使用。 JNI本机扩展已被编译并包含在内,而...
安卓开发-andengine中直接加载多张小图片合成一张大图片生成动画精灵
### AndEngine分析之三——AsyncTask与BaseActivity深入解析 #### 一、AsyncTask概述 在AndEngine项目中,为了实现界面更新等操作时避免主线程阻塞的问题,使用了`AsyncTask`来处理后台任务。`AsyncTask`提供了一...
学习AndEngine-GLES2的源码,你将了解到如何使用OpenGL ES 2.0进行图形编程,如何管理游戏状态,以及如何实现高效的性能优化。这不仅可以提升你的Android游戏开发技能,还能帮助你理解和解决实际开发中遇到的问题。...
这个毕业设计项目的核心是利用AndEngine的技术实现动态精灵(Sprite)的动画效果,通过将多张小图片组合成一张大图片,然后在运行时分割和动态加载,以达到流畅的动画效果。 一、AndEngine简介 AndEngine是一款开源...
AndEngine 中的 BaseGameActivity 详解 BaseGameActivity 是 AndEngine 框架中一个关键的组件,它是游戏的基础,负责管理游戏的引擎和SurfaceView。它继承自 BaseActivity,并实现了 IGameInterface 接口。 ...
本文将深入探讨如何在AndEngine中通过直接加载多张小图片来合成一张大图片,进而创建出动态的动画精灵。 首先,我们需要理解AndEngine中的精灵(Sprite)概念。精灵是2D游戏中的基本元素,它代表一个可移动和可渲染...
源码中应该包含了如何在适当的时候加载和释放纹理及精灵资源的方法。 8. **帧率控制**:为了流畅地显示动画,源码可能包含了帧率控制机制,例如通过`UpdateHandler`更新动画状态,并结合`Time专卖店`计算帧间隔。 ...