ok, 学习andengine的第一步不是什么helloworld,而是搭建环境。 andengine的环境搭建起来还是比较简单的,但是如果没接触过的人来说还是比较费时费力的。
1.首先要下载相关的源码了, andengine作者没有提供现成的jar包, 只有源代码, 因此就需要我们自己下载代码,自己编译了。下载的步骤前人已经总结好, 我就不重复造轮子了。
下载AndEngine源码、example和几个扩展包
AndEngine:
https://github.com/nicolasgramlich/AndEngine
AndEngineExamples:
https://github.com/nicolasgramlich/AndEngineExamples
要用到的9个扩展包:
AndEngineLiveWallpaperExtension:
https://github.com/nicolasgramlich/AndEngineLiveWallpaperExtension
AndEngineTexturePackerExtension:
https://github.com/nicolasgramlich/AndEngineTexturePackerExtension
AndEngineTMXTiledMapExtension:
https://github.com/nicolasgramlich/AndEngineTMXTiledMapExtension
AndEngineMultiplayerExtension:
https://github.com/nicolasgramlich/AndEngineMultiplayerExtension
AndEnginePhysicsBox2DExtension:
https://github.com/nicolasgramlich/AndEnginePhysicsBox2DExtension
AndEngineScriptingExtension:
https://github.com/nicolasgramlich/AndEngineScriptingExtension
AndEngineSVGTextureRegionExtension:
https://github.com/nicolasgramlich/AndEngineSVGTextureRegionExtension
AndEngineMODPlayerExtension:
https://github.com/nicolasgramlich/AndEngineMODPlayerExtension
AndEngineAugmentedRealityExtension:
https://github.com/nicolasgramlich/AndEngineAugmentedRealityExtension2.将下载的源码导入到eclipse中, 这步很简单, 导入完成之后如图所示就ok了
3.andengine的例子中有一些错误, 导致报错。 我是大概1个月之前下载的, 不知道现在还有没有了。
如果不能运行,则需要进行下面的处理。
a.如果工程出现红色感叹号,说明包没有导入成功,右击工程>Properties>Java Build Path>Libraries>Add JARS,把AndEngine和其它扩展库项目中bin目录下的jar文件导入。
b.如果工程出现红色的叉,在确定扩展库都导入成功的情况下,打开AndEngineExample的src,把这里面的出错的example删除,或者修改,或者把出错的地方注释掉,应该就行了。我发现出错的地方有:
BoundCameraExample中的220行: 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); HullAlgorithmExample中的11行、168行、175行: import org.andengine.entity.primitive.vbo.DrawMode; this.mMesh = new Mesh(centerX, centerY, this.mMeshVertices, this.mMeshVertexCount, DrawMode.LINE_LOOP, this.getVertexBufferObjectManager(), DrawType.STATIC); this.mHull = new Mesh(centerX, centerY, this.mHullVertices, this.mHullVertexCount, DrawMode.LINE_LOOP, this.getVertexBufferObjectManager(), DrawType.STATIC); 这里是import的导入的类不对,改成import org.andengine.entity.primitive.DrawMode;或者使用快捷键 alt+ctrl+o或者ctrl+shift+o完成导入。 SplitScreenExample中的179行: final AnimatedSprite face = new AnimatedSprite(pX, pY, this.mBoxFaceTextureRegion, this.getVertexBufferObjectManager()).animate(100); 改成和上面的BoundCameraExample中的220行的一样即可。 TextBreakExample中的106行: this.mText = new Text(50, 40, this.mFont, "", 1000, new TextOptions(AutoWrap.LETTERS, AUTOWRAP_WIDTH, Text.LEADING_DEFAULT, HorizontalAlign.CENTER), vertexBufferObjectManager); 这里是TextOptions的参数有问题,修改成 this.mText = new Text(50, 40, this.mFont, "", 1000, new TextOptions(AutoWrap.LETTERS, AUTOWRAP_WIDTH, HorizontalAlign.CENTER,Text.LEADING_DEFAULT), vertexBufferObjectManager);
修改完成了,即可运行。4.创建项目, 加入andengine支持。新建一个普通android项目, 然后右键项目选择properties,在左侧选中android。 然后在Library栏目中add新增andengine支持, 如图所示:
OK,到这一步,环境就算搭建完成了, 只需要加入一个继承自SimpleBaseGameActivity的Activity就可以开始andengine的正式学习了。