2011-10-07 56 views
3

我是使用Box2d的新手,但實際上找不到一致的答案,因此請原諒我。如何給一個Box2d運動機構預定義曲線路徑

我正在爲iPhone編寫遊戲 - 誰不是這些天 - 我正在使用Cocos2d和Box2D。我有在遊戲中移動的物體,我想給他們更多的曲線路徑。從我的學習中,我知道我應該使用b2_kinematicBody類型的機體,它允許我改變每個刻度線的線速度,並防止它們與其他飛行體碰撞。我明白,如果我知道我的當前位置(x,y)和我在步驟(x1,y1)中的下一個位置,我將能夠計算速度矢量。有沒有人有一個很好的方法來給一個物體一個確定的彎曲路徑?我認爲它必須是某種參數方程。

回答

2

看看bezier曲線。在曲線定位之後,您可以計算導數(對貝塞爾來說很容易)並將其用作您身體的速度

+0

更接近,貝塞爾曲線的一階導數效果很好!非常感謝! – Aaron

+0

只是爲了驗證我正在走正確的道路,爲了在身體在曲線上移動時獲得恆定的速度,我做了以下操作。在找到速度矢量之後,我將其歸一化,這給我一個恆定的速度,然後再乘以一個因子,如果我希望它在曲線上移動得更快。這對於這種模擬來說似乎是正確的嗎? – Aaron

+0

@Aaron:不,它沒有。我不知道一個簡單的方法沿着貝塞爾以恆定的速度移動。我建議你以編程方式將曲線分成幾行(更多行 - 更平滑的移動)。如果在線上移動,則很容易控制速度 – Andrew

-1

OH遊戲叫什麼?聽起來很不錯。你有沒有看過,也許只是在2.0版本中做到這一點

+0

我真的很希望能夠給出一條曲線路徑而不僅僅是一條線。它會增加一個數量級的複雜性。 – Aaron