2011-03-22 52 views
1

我有一個有限尺寸的2D矢量場。我想要的是在這個領域找到任何「循環」 - 也就是說,如果這個領域代表了一個流體的流動,並且你將一個對象放在這些循環中的一個循環上,那麼這個對象就會四處走動,永遠不會到達休息。我想我已經找到了一些關於這個問題的學術性數學文章,但是他們遠遠超過我的頭腦,我無法理解它們。是否有標準的算法來尋找這樣的週期?如何在二維矢量場中找到非終止循環?

爲什麼我想要找到這樣的週期?我正在考慮製作一款與超級馬里奧銀河有相似概念的2D平臺遊戲,因爲這裏會有幾個小引力物體,玩家可以在它們之間跳來跳去,而不是一個單一的全球引力矢量。靜態物體的重力場將在等級編輯過程中靜態計算。我並不真的來解決這個問題,但它將是一個非常好的工具,用於在關卡編輯器中檢測不可避免的重力循環,而不是通過遊戲測試發現它們。

+0

我想知道你需要做什麼,然後*嘗試實現它。如果你在場上沒有練習,你不會走得太遠...... – Blender 2011-03-22 19:51:08

回答

0

很難想象包含循環的「重力場」。但是,玩家的軌跡可能是循環的。我們稱之爲「軌道」。

一個簡單的解決方案可能是包含少量的摩擦或阻尼以確保軌道衰減。

一個不易處理的解決方案:如果空間是離散的,那麼你可以測試每個狀態(位置,速度)並檢查玩家是否重新訪問相同的狀態。請注意,這也需要有限數量的合法速度值。

從可用性的角度來看,給玩家一些推進手段也是解決問題的好方法。

+0

Goddammit Yann我無法離開你。 – 2012-02-01 00:39:44