AndEngine 是完整 2D 遊戲引擎(渲染、場景管理、實體、粒子、音效、觸控),適合初學者快速上手。
JBox2D 僅為 Box2D 物理引擎的 Java 移植,**不包含渲染、場景、資源管理**,需自行整合圖形庫(如 LibGDX、LWJGL),適合有經驗開發者自建引擎架構。
| 維度 | AndEngine | JBox2D |
|---|---|---|
| 功能範圍 | 完整遊戲引擎 | 僅剛體物理模擬 |
| 渲染 | OpenGL ES 封裝,支援精靈、動畫、粒子 | 無(需自行繪製) |
| 場景/實體管理 | 內建 Scene、Entity、Component 體系 | 無 |
| 物理引擎 | 內建 Box2D 擴展 (PhysicsFactory) | 核心功能 |
| 文檔/範例 | 官方 Examples、AndEngine Cookbook 書籍、活躍社群 | 僅 API 文檔、Box2D 通用教學 |
| 學習曲線 | 平緩,Hello World 約 30 行 | 陡峭,需自建渲染迴圈、資源載入 |
| 適用專案 | 2D 休閒、街機、RPG、塔防等完整遊戲 | 需高度客製物理行為、自研引擎專案 |
github.com/nicolasgramlich/AndEngine(含 Examples 模組)https://ygydaiaq-gmail-com.iteye.com/blog/1843019public class GameActivity extends BaseGameActivity {
@Override
public EngineOptions onCreateEngineOptions() {
return new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED,
new RatioResolutionPolicy(800, 480), new Camera(0, 0, 800, 480));
}
@Override
public void onCreateResources(OnCreateResourcesCallback callback) {
// 載入圖片、音效...
callback.onCreateResourcesFinished();
}
@Override
public void onCreateScene(OnCreateSceneCallback callback) {
Scene scene = new Scene();
scene.setBackground(new Background(0.098f, 0.627f, 0.878f));
Sprite face = new Sprite(100, 100, mFaceTextureRegion, getVertexBufferObjectManager());
scene.attachChild(face);
callback.onCreateSceneFinished(scene);
}
@Override
public void onPopulateScene(Scene scene, OnPopulateSceneCallback callback) {
callback.onPopulateSceneFinished();
}
}
初學者以 AndEngine 或 LibGDX 起步最划算,JBox2D 留待進階階段專研物理模組時再引入。