2011-08-03 102 views
1

我已經丟失了大量的信息box2d和它的端口。 但我有一個非常簡單的問題,爲此我無法在任何地方獲得任何信息。Box2d - 動作腳本,Java,andengine - 身體位置

如何正確計算體位。假設我在屏幕上有精靈(10,20)。 爲什麼box2d的每個教程都計算這個不同?

例如: - 使用函數coordPixelToWorld和coordWorldToPixel處理(來自processing.org),用於計算beetwen世界和屏幕 - 這是一個小小的編譯函數; - andengine具有類似的功能,用於轉換beetwen世界和屏幕; - actionscript - 這裏我不明白爲什麼,但每個教程都獲得屏幕座標,並通過比例函數進行劃分。

我問這個問題,因爲以上所有都有一個共同點:0,0的屏幕座標位於左上角。 box2d是否爲每個端口寫入不同的內容?

我將不勝感激的解釋。

更新

我沒有與Box2D的動作非常大的麻煩。我的問題是:爲什麼當我將身體位置設置爲(0,0)時,它以短語顯示在窗口的左上角。在任何其他box2d端口(處理,jbox2d,andengine box2d擴展名)中,如果我將主體位置設置爲(0,0),它將顯示在窗口的中心。我知道有關每米像素等的規則。

回答

0

在actionscript中,DisplayObject的中心通常是左上角,但Box2D物體的中心與重心中心重合(形狀的實際中間,而不是左上角)。另外Box2D的單位不完全是像素,但你可以很容易地在兩者之間進行轉換。

我建議有一個看Box2DFlash手冊,特別是在Units的UserData的一部分。理想情況下,您需要閱讀整本手冊以更好地瞭解Box2D,這將爲您提供更多控制權。

如果您對本質不感興趣,請嘗試使用世界建築工具包。它應該使設置Box2D世界變得更容易。

Box2D WCK

1

其原因的變化是,在Box2D的所有形式,使用米作爲其測量的單元。其原因在於它旨在模擬真實世界的對象。

Box2D根本不需要有視覺表現。當您創建box2D模擬時,開發人員需要在box2D的圖形渲染中顯示何種細節級別。所以會有一個乘數,代表米到像素的轉換。在Box2D閃光燈的情況下,此比率的默認值爲30px:1m。

所以每個toturial都有轉換功能的原因是Box2D使用儀表,而電腦顯示器使用像素。

它將米轉換爲像素,將像素轉換爲米。