2013年10月2日 星期三

Android NDK 開發教程八:Box2D 的Android NDK實現

http://www.imobilebbs.com/wordpress/archives/2952

Android NDK 開發教程八:Box2D 的Android NDK實現

Box2D 是一個用於遊戲的 2D 剛體模擬庫。程序員可以在他們的遊戲里使用它,它可以使物體的運動更加可信,讓世界看起來更具交互性。從遊戲的視角來看,物理引擎就是一個程序性動畫(procedural animation)的系統,而不是由動畫師去移動你的物體。你可以讓牛頓來做導演。
Box2D 是用可移植的 C++ 來寫成的。因此也可以通過Android NDK 將它引用到Android 平台,從而也可以在Android平台使用Box2D引擎來編寫遊戲。
這裡介紹的是基於AndEngine的Box2D庫的擴展,它就是通過NDK將Box2D C++函數通過JNI實現了對應的Java 介面。源碼可以從http://code.google.com/p/andengine/ 下載,或是從本地下載 (210MM 包括所有源碼及示例)。
src 目錄提供了Box2D的Java介面,主要是通過調用native Box2D C++函數庫來實現。NDK最常見的用法是將一些C/C++函數庫移植到Java平台,而不是直接用來寫Android應用。
這是使用Box2D函數庫實現的一個實例PhysicsRevoluteJointExample,源碼在上面tar包中。性能相當不錯。
可以參考其中Android.mk 文件的內容。
後面將專門介紹AndEngine開發包,如果你對寫手機遊戲感興趣的話,請留意我們的博客。