2012-01-12 23 views
0

因此,僅僅爲了踢球,我決定掀起一場「塔防」比賽。我擁有所有核心概念。只有一個方面,我還沒有真正想出。在一個方向上爲邊界內的對象設置動畫

什麼是沿路徑動畫物體的最佳方法?

我不希望路徑過於僵化,我希望有一點點的變化。

我想幾乎像一個「河」,該物體漂浮下來,那裏有這些對象不能通過銀行和定義的方向流動。如果一個物體碰到一個銀行,它應該有點反彈到「河流」中心的邊緣,並始終朝「下游」方向發展

我想要儘可能遠離框架的答案。我不認爲語言應該太重要(如果它更好地說明了這個過程,那麼可以隨意發佈代碼/僞代碼!)。

編輯: 現在,我在想這件事,會像一個A *尋路(或其他如A *是沒有意義的,這僅僅是一個主要我所知道的)做法是合理的?當然還有一個「退出」,其中的對象是試圖去的概念,所以我想我可以有一個規則,說:「這些像素是不可逾越的,什麼是到出口的最短路線」。如果需要的話,添加一個如此微小的差異量來進行路由。

想法?

回答

1

這是我會怎麼處理這一問題:

Pathfinding

在此圖像中,棕色路徑表示你的壞人要採取的路徑,黃色的正方形是航點,紅色邊緣路徑邊界。這裏基本上是他們的國家如何能進步:

Have I hit a waypoint? 
    Yes, adjust my forward axis 
    Choose the next waypoint 
    My forward direction is toward that waypoint 
Am I touching a red boundary? 
    No, I can wander left or right 
    Yes, it's on my right 
    I should wander left 
    Yes, it's on my left 
    I should wander right 
Add lateral movement based on the wander direction I've chosen 

有跡象表明,在這裏可以進行微調,幾個變量:

  • 壞人應該承諾一個方向給定的時間量,除非他們打了一個航點所以他們不會抖動
  • 當他們遇到一個路徑邊界時,他們應該離開它一定的距離,以便它們不會反彈它
  • 在前進到下一個之前,壞點應該撞到路標的中心。否則,他們可能會陷入尖銳的角落。

如果您的關卡是預先生成的(我認爲這是大多數TD遊戲的情況),那麼您可以在創建地圖時設置路標。如果你正在程序化地生成它們,那麼只要在你想要河流下游改變超過+/- 5度的地方設置航點。 A *對於這樣一個受約束的領域來說有點矯枉過正。如果要添加多一點點的變化,你可以考慮在隨機從選擇分支中的壞人選擇他們的下一個航點的路徑,你可以建立一個T字路口,其中壞人蔘觀A,然後是B,然後是C,然後B,那麼D.它應該是很容易的原型,並且正確的感覺會伴隨着你允許或鼓勵多少橫向移動的一些調整。