2011-12-25 58 views
4

我正在製作一個遊戲,其中某個對象(建模爲box2d主體)必須遵循固定路徑。有沒有一種方法可以指定路徑座標並使對象在每個dt上超前?使Box2d對象遵循預定路徑

感謝

回答

6

另一種選擇:

  • 連接鼠標接頭,你的身體
  • 鼠標關節
  • 使用setTarget方法來移動身體
1

你應該使用一個運動的身體,但你不能改變它的位置手動,你必須改變其速度的動態和碰撞才能正確應用。

,我建議如下算法:

1 - 計算軌道,身體應該是在下DT上的位置。

2nd - 使一個向量從身體位置到下一個位置。

第3步 - 規範化它。

第4位 - 計算您需要多少速度,以便身體在下一個循環中處於該位置,並將該速度乘以向量。

5th - 將此矢量應用於身體的線速度。

注意:確保運動機構有零阻力,以便計算第4步更容易。

我從來沒有這樣做過,我認爲可以這樣做。 希望它能幫助:)

+0

檢查hiepnd的答案,其更容易,並應提供相同的結果:) – 2011-12-26 13:11:05

+0

謝謝。我做了類似的事情。因爲我知道下一個位置,所以我在步驟4使用了setTransform。這些方法只有問題:瞬態狀態必須在onUpdate中進行計算和指定。現在轉到另一種方法來查看box2d是否接管了位置計算。 – Nav 2011-12-27 08:44:46