JBox2D

JBox2D

jbox2D 物理引擎原版 Box2D 是採用C++編寫的,後來擴展到java,as等多種版本。著名手機遊戲憤怒的小鳥便是採用jbox2D物理引擎。不過java版的jbox2D引擎性能不如C++環境下運行的性能好。在性能配置比較好的手機上面,jbox2D效果也是不錯的。

問題分析

研究JBOX2D 的遊戲引擎,對於這個JBOX2D遊戲本身的性能並不作為本文討論的重點。本文純屬個人觀點,非常希望能和一些志同道合的人探討相同的問題。大家可以上網下JBOX2D的原始碼~其實去看原始碼~你會發現JBOX2D的原始碼寫的挺好,而且沒有依賴於第三方的包,很多類都非常的原生,本質目的是為了提高jar在java項目中移植性。

首先先看一段代碼:

AABB mAABB = null;

World mWorld = null;

Vec2 mGravity = new Vec2(0.0f, 10.0f);

private final static int RATE = 10;;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,WindowManager.LayoutParams. FLAG_FULLSCREEN);

mAABB = new AABB();

mAABB.upperBound.set(-100, -100);

mAABB.lowerBound.set(100, 100);

mWorld = new World(mAABB, mGravity, true);

}

這個事基於Android開發的在BOX2D中對世界進行了抽象化,抽象成一個有邊界和有重力的實體,為了避免在現實世界和虛擬世界中的單位不匹配,定義了比例尺:RATE 。

我們看看如何在Box2d中的世界中創建一個簡單的實體。

一個物體在世界中存在在兩個世界,一種在於它存在於這個物質世界,另外他也存在於我們的感官世界。對於整個世界來說物體相對於它只是一個質點,所以這個世界要關心的是它的質點,而對於我們的感官世界來說,物體是有形狀,一個物體的形狀大小基本可以決定他的質量,而質量相關的就是物體本身的密度屬性。

相關詞條

熱門詞條

聯絡我們