2010-12-08 83 views
2

我如何爲我的遊戲編寫沙漏行爲(類似於圖片)?沙漏可視化算法

alt text

我應該像引力和砂處理每一粒?

什麼數字沙漏(喜歡上了這鐘)? alt text

+1

您*可以*分別繪製每個幀並將其呈現爲靜態動畫。 – 2010-12-08 21:30:21

+0

沙粒需要的分辨率是多少? 高分辨率可能會受益於使用粒子引擎,低分辨率可能會像你張貼的第二張照片那樣「僞造」。你能澄清一下目的嗎? – aaronfarr 2010-12-08 21:33:10

+1

在以前的生活中,我實際模擬了密集顆粒砂流的行爲。我的建議?除非你打算獲得博士學位,否則爲了獲得看起來合適的東西,請接受較低的準確度。 – 2010-12-08 21:35:25

回答

3

切線方向,你可以用cellular automata模擬落沙。我不會考慮將它用於沙漏模擬,但原則上它可能工作得很好,並且是一個有趣的項目。

看着你的數字沙漏 - 穀物移動設置模式,或者它可能使用像這樣的CA.

5

爲了遊戲中的沙漏而對沙粒進行「適當」模擬的努力是嚴重的過度工程。

獲取藝術家以生產高品質的動畫,要麼呈現爲一系列的靜態圖像或電影。

認真,不模仿沙子。

1

建模就能製造杆爲自己的背部,你會更好只是畫手幀回放它們。

但是 - 如果數學是你的事,你可以:

  • 工作出砂在頂部的音量。
  • 定義了通過頸部的體積流量(保持這個任意值,因爲你想調整它)。
  • 在任何給定的時間,您都可以使用流量來計算出沙子頂部有多少沙子。
  • 如果您知道頂部容器的形狀,您可以根據當前的沙量計算當前沙子的高度。
  • 如果您知道底部船的形狀,您可以根據流過脖子的沙子的體積計算當前沙子的高度。
1

我將在這裏唱唱反調,並假設你真的想在你的遊戲不只是創建一個簡單的沙漏負荷指標(如人說這將是白費力氣)來模擬沙。

所以我回到我的初步評論。你在尋找什麼樣的決議?

機會是你不需要模擬沙子的每個顆粒。因此,保持簡單並將物理學放在外面,只是模擬效果。

例如,把我的頭頂部,你可以使用3個簡單的規則: 比重:如果「沙像素」的像素是空的轉變,列下來。

洞:如果有「沙像素」的兩列之間的空隙填滿它,如果它下面的空間不是空(即。不會下降)

堆積:如果在「沙像素」列旁邊有空的空間,如果它下面的空間不是空的,它就會散開。

這些只是可能工作的規則的一些例子。關鍵是要做一個模擬試驗來達到預期的效果。通常情況下,它比建模物理的工作和處理器密集程度要低。