一.AndEngine介绍
AndEngine是国外某大牛自主开发的Android游戏引擎。目前网上资料较多的Android开源游戏引擎有Rokon(可惜原作者因学业等事务繁忙停止更新,目前存在许多bug)、Libgdx(文档较为匮乏)、LGame(国人自主研发)、Alien3d和AndEngine(目前原作者仍在更新,有国外社区支持,且已有技术书籍可供参考),作为Android游戏开发个人研究而言,博主选择了AndEngine入手进行学习。
AndEngine原作者将其开源放在Github上,目前有许多不同的分支,再加上AndEngine随其支持的OpenGL ES版本不同出现的先后两个主要版本,导致目前版本和资料较为混乱,网上现存的大多资料和部分书籍都是旧版本的,本文及接下来的文章都是基于GLES2的(不同版本的AndEngine可能需要对应不同的扩展包、示例程序),这点请读者注意。
二.AndEngine常用扩展介绍
本文使用的AndEngine版本为AndEngine-GLES2。下载地址:https://github.com/nicolasgramlich/AndEngine
AndEngineTMXTiledMapExtension为瓦片地图扩展,下载地址:https://github.com/nicolasgramlich/AndEngineTMXTiledMapExtension
AndEngineTexturePackerExtension为纹理打包扩展,下载地址:https://github.com/nicolasgramlich/AndEngineTexturePackerExtension
AndEngineSVGTextureRegionExtension为SVG纹理扩展,下载地址:https://github.com/nicolasgramlich/AndEngineSVGTextureRegionExtension
AndEngineScriptingExtensionGenerator为脚本扩展发生器,下载地址:https://github.com/nicolasgramlich/AndEngineScriptingExtensionGenerator
AndEngineScriptingExtension为脚本扩展,下载地址:https://github.com/nicolasgramlich/AndEngineScriptingExtension
AndEngineRobotiumExtension为Robotium扩展,下载地址:https://github.com/nicolasgramlich/AndEngineRobotiumExtension
AndEnginePhysicsBox2DExtension为物理引擎扩展,下载地址:https://github.com/nicolasgramlich/AndEnginePhysicsBox2DExtension
AndEngineMultiTouchExtension为多点触摸扩展,下载地址:https://github.com/nicolasgramlich/AndEngineMultiTouchExtension
AndEngineMultiplayerExtension为多玩家扩展,下载地址:https://github.com/nicolasgramlich/AndEngineMultiplayerExtension
AndEngineMODPlayerExtension为MOD扩展,下载地址:https://github.com/nicolasgramlich/AndEngineMODPlayerExtension
AndEngineLiveWallpaperExtension为现场壁纸扩展,下载地址:https://github.com/nicolasgramlich/AndEngineLiveWallpaperExtension
AndEngineAugmentedRealityExtension为增强现实扩展,下载地址:https://github.com/nicolasgramlich/AndEngineAugmentedRealityExtension
三.AndEngine示例环境搭建
1.搭建Android开发环境,本文不介绍,可自行Google。
2.下载对应版本的AndEngine示例程序包,下载地址:https://github.com/nicolasgramlich/AndEngineExamples
3.解压示例程序包,在开发环境中点击import,点击导入现有的Android项目,然后选择示例程序项目,导入。
4.下载AndEngine项目程序包,编译。
5.下载上述12个扩展包,分别引用第4步生成的jar文件,编译。
6.在示例程序项目中引用第4和第5步生成的共13个jar文件。
7.编译程序,此刻可发现有几个错误。如下修改。
将org.andengine.examples.HullAlgorithmExample.java文件中
import org.andengine.entity.primitive.vbo.Mesh;
改为
import org.andengine.entity.primitive.Mesh;
将org.andengine.examples.TextBreakExample.java文件中
this.mText = new Text(50, 40, this.mFont, "", 1000, new TextOptions(AutoWrap.LETTERS, AUTOWRAP_WIDTH, Text.LEADING_DEFAULT, HorizontalAlign.CENTER), vertexBufferObjectManager);
改为
this.mText = new Text(50, 40, this.mFont, "", 1000, new TextOptions(AutoWrap.LETTERS, Text.LEADING_DEFAULT, HorizontalAlign.CENTER), vertexBufferObjectManager);
将org.andengine.examples.BoundCameraExample.java文件和org.andengine.examples.SplitScreenExample.java文件中
final AnimatedSprite face = new AnimatedSprite(pX, pY, this.mBoxFaceTextureRegion, this.getVertexBufferObjectManager()).animate(100);
改为
final AnimatedSprite face = new AnimatedSprite(pX, pY, this.mBoxFaceTextureRegion, this.getVertexBufferObjectManager());
face.animate(100);
8.完成上述步骤后重新编译,有部分物理引擎的例子无法运行,需要下载libandenginephysicsbox2dextension.so文件,在示例程序工程目录下新建\libs\armeabi目录,将该文件置于其下(因为部分设备对物理引擎扩展包支持不好,需直接调用编译好的so文件),重新编译整个示例项目工程,在Android模拟器或者真机环境下即可运行大部分例子。
注:博主使用真机环境调试,Android系统版本为2.3,内存512M。