2012-05-18 23 views

回答

2

可能是因爲像素數量在設備/顯示器之間可能會發生變化,所以它不可靠。例如,如果您在iPad1上移動10個像素,則由於iPad3上的分辨率更高(每英寸更多像素),您將移動的距離比移動iPad3上的10個像素更遠。使用儀表爲物理引擎提供了一個可靠的測量單位,可以在所有設備/顯示屏上保持一致。

8

Box2D是一個內部使用MKS system of units的仿真框架。如果你想要一個可靠和可預測的模擬,你應該在這個單位系統內用合理的數值表示你創建的模擬系統。你想要一個盒子表現得像一個盒子,一塊岩石表現得像一塊岩石,一個球表現得像一個球。

如果您將像素作爲一個單位,並且您有一個20乘20像素,標量質量值爲10的框,那麼您確實會創建一個邊長20米的框,其質量僅爲10千克。從本質上講,你的模擬變得難以建立並且變得真實。

沒有什麼能夠阻止你使用像素作爲單位。但是,爲了表現可靠,自然和可預測的行爲,以預期的單位和合理的範圍表示提供給模擬框架的值會更好也更容易。

2

here

Box2D的物理對象兩者與長度和寬度米來定義。 Box2D針對尺寸爲1x1米的物體進行了調整。您希望PTM (像素到米)的原因是您不希望在像素尺寸和米尺寸之間具有1至1 相關性。例如,如果您有一輛長200個像素和50個像素的汽車,並且您沒有使用PTM轉換,那麼您最終會創建一個長200米乘50米的 Box2D汽車。這是656英尺長或大約 12輛半卡車的長度。想象一下,你將不得不 適用於這輛車來移動它。

您想要的是將您的像素尺寸縮小爲Box2D的米尺寸 ,大多數時候我最終使用30或32像素的PTM到1 米。

我相信Box2D最適合1米的原因是對數字1的計算比對其他數字的運算要快。例如根(1)= 1(並且根是物理引擎中的常見計算)。因此,您應該調整PTM比率,以便最常見的物體尺寸爲1X1米。

Box2D documentation 1.7節  還提供了一些啓示:

Box2D的工作與浮點數和公差必須使用 使Box2D的表現良好。這些公差已被調整到能夠以米 - 千克 - 秒(MKS)單位工作 。特別是,Box2D的 已經調整好,可以在0.1到10米之間移動物體。 因此,這意味着湯罐和公交車的尺寸之間的物體應該工作 以及。靜態物體可能高達50米大,沒有太多的麻煩。

相關問題