由於工作需要,最近需要研究專門針對Android的開源引擎。
在網上搜了下,感覺AndEngine的口碑不錯,功能也很強大。所以準備下載此引擎的樣本來嘗試一下。
在網上搜尋了一下相關資料,感覺還是比較複雜。在此將全部過程記錄下來。
AndEngine的:https://github.com/nicolasgramlich
要想成功運行AndEngine的Examples必須下載的11個組件(包括Examples在內):
AndEngine:https://github.com/nicolasgramlich/AndEngine
AndEngine - Examples:https://github.com/nicolasgramlich/AndEngineExamples
AndEngine - Live-Wallpaper Extension:https://github.com/nicolasgramlich/AndEngineLiveWallpaperExtension
AndEngine - TexturePacker Extension:https://github.com/nicolasgramlich/AndEngineTexturePackerExtension
AndEngine - TMX Tiled Map Extension:https://github.com/nicolasgramlich/AndEngineTMXTiledMapExtension
AndEngine - Multiplayer Extension:https://github.com/nicolasgramlich/AndEngineMultiplayerExtension
AndEngine - Physics Box2D Extension:https://github.com/nicolasgramlich/AndEnginePhysicsBox2DExtension
AndEngine - SVGTextureRegion Extension:https://github.com/nicolasgramlich/AndEngineSVGTextureRegionExtension
AndEngine - .MOD-Player Extension:https://github.com/nicolasgramlich/AndEngineMODPlayerExtension
AndEngine - Augmented-Reality Extension:https://github.com/nicolasgramlich/AndEngineAugmentedRealityExtension
AndEngine - Scripting Extension:https://github.com/nicolasgramlich/AndEngineScriptingExtension
下載好後,將這些工程全部匯入到eclipse中,因為所有工程預設的Android SDK target都是android-15所以大家最好事先下載好android SDK 4.0.3。
所有的工程都引用了AndEngine或者其他的組件。當編譯有問題時,檢查工程引用路徑是否正確(在工程屬性中選擇Android,看下方的Library中的對應的路徑是否正確)。
先編譯AndEngine,然後編譯各個向外延展群組件xxxxExtension,最後再編譯Examples。
我在編譯Examples時遇到了幾處錯誤,分別進行了如下修改。如果各位同學在編譯過程中沒有遇到錯誤可以不必理會。
org.andengine.examples.HullAlgorithmExample.java檔案中
將
import org.andengine.entity.primitive.vbo.Mesh;
改為
import org.andengine.entity.primitive.Mesh;
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);
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);