AndEngine引擎学习之环境配置以及示例修改
最近打算学习下android的游戏开发,大家一直叫我使用cocos2d-x,不过cocos2d-x是使用c++编写的,对于我来说目前还是有点儿难度的,我先使用AndEngine来玩玩。以下是网上的一些demo的配置情况,以及自己的一些与网上不一样的修改。 1.下载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/AndEngineAugmentedRealityExtension 下载zip包,下载完后解压,放到同一个文件夹下,每一个文件夹的名字改成各自的包的名字,如AndEngineAugmentedRealityExtension(要做这一步是因为有可能下载下来的zip包命名前后都加了一些字符,如nicolasgramlich-AndEngineAugmentedRealityExtension-8e9a644,而代码中识别是通过相对路径+工程名的)。 2.导入eclipse 把上面的所有工程全部导入到workspace中。 注意,我是2012年6月21日下载的,里面默认的target SDK 是 android-15,也就是4.0.3,由于我原本已经有4.0.3的SDK,所以导入比较顺利,否则,可以通过以下几种方法进行处理: a.把AndEngine以及上述所有工程的target SDK改成你有的SDK版本,如改成2.3.1的,具体怎么改就不说了;然后,把每一个工程根目录下的project.properties文件中的target改成跟你设置的SDK版本一致,比如2.3.1就是android-9。 b.在SDK manager中下载最新版本的SDK,现在来说,最新的是4.0.3. 3.导入完成后,进行一些修改 经过上面导入后,有可能是能运行AndEngineExample的了。如果还不能运行,则需要进行下面的处理。 a.如果工程出现红色感叹号,说明包没有导入成功,右击工程>Properties>Java Build Path>Libraries>Add JARS,把AndEngine和其它扩展库项目中bin目录下的jar文件导入。 b.如果工程出现红色的叉,在确定扩展库都导入成功的情况下,打开AndEngineExample的src,把这里面的出错的example删除,或者修改,或者把出错的地方注释掉,应该就行了。我发现出错的地方有: BoundCameraExample中的220行: finalAnimatedSpriteface=newAnimatedSprite(pX,pY,this.mBoxFaceTextureRegion,this.getVertexBufferObjectManager()).animate(100); 这里修改为: //修改此处 finalAnimatedSpriteface=newAnimatedSprite(pX,pY,this.mBoxFaceTextureRegion,this.getVertexBufferObjectManager()); face.animate(100); HullAlgorithmExample中的11行、168行、175行: importorg.andengine.entity.primitive.vbo.DrawMode; this.mMesh=newMesh(centerX,centerY,this.mMeshVertices,this.mMeshVertexCount,DrawMode.LINE_LOOP,this.getVertexBufferObjectManager(),DrawType.STATIC); this.mHull=newMesh(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行: finalAnimatedSpriteface=newAnimatedSprite(pX,pY,this.mBoxFaceTextureRegion,this.getVertexBufferObjectManager()).animate(100); 改成和上面的BoundCameraExample中的220行的一样即可。 TextBreakExample中的106行: this.mText=newText(50,40,this.mFont,"",1000,newTextOptions(AutoWrap.LETTERS,AUTOWRAP_WIDTH,Text.LEADING_DEFAULT,HorizontalAlign.CENTER),vertexBufferObjectManager); 这里是TextOptions的参数有问题,修改成 this.mText=newText(50,40,this.mFont,"",1000,newTextOptions(AutoWrap.LETTERS,AUTOWRAP_WIDTH,HorizontalAlign.CENTER,Text.LEADING_DEFAULT),vertexBufferObjectManager); 修改完成了,即可运行。 本文转自xuzw13 51CTO博客,原文链接:http://blog.51cto.com/xuzhiwei/1048904,如需转载请自行联系原作者