我從來沒有做過這樣的事情,但我已經做了一些複雜的細胞自動機。對不起,如果這太模糊。
基本這裏的想法是標記所有的粒子應該「繼續下跌」或「不動」和排除他們從複雜的處理(用特殊短/快處理器的「下落」名單 - 你需要做的就是每個像素點)。
- 非運動粒子的加速度 - 靜態粒子(我稱之爲S粒子)是它們不移動。標記爲所有非移動區域(例如用戶可能製造的重力免疫「牆」或「碗」),如果它們穩定,則標記它上面的粒子,例如對於液體,如果其下面有S粒子,則標記爲,對於它自己的雙方,它不會移動對於沙子形成的東西,如果它在它下面的三個點中都有一個S,它會堆成一堆,你會得到很好的45-我確信你可以改變它以使某些東西形成更陡峭或更不陡峭的樁。做S映射自下而上
- 加速度爲下面沒有顆粒的顆粒正在下降-F顆粒。在它們下面的F粒子的粒子也是F粒子,並且將它們自下而上標記爲
- 粒子未標記的F或S a他們可能會開始下降,停止下降或滾動,使用已經擁有的慢速處理器來處理它們,應該不會有太多。
最後你會得到許多許多快速粒子。那些在一堆/湖泊和下雨的人們。剩餘粒子是位於斜坡邊緣,湖泊頂部或其他複雜位置的粒子。不應該有像快速粒子一樣多的粒子。
用色標記各種顆粒,複雜顆粒呈鮮紅色。找到它仍然很慢的情況,並參見其他類型的快速處理器您應該做什麼。例如,您可能會發現,製作大量的沙子會在斜坡上形成大量紅色區域,您可能需要投資加快沿樁斜坡的「滾動區域」。
希望它是有道理的。不要忘了一旦你想出了一些東西,就回來編輯!
它是android的drawPoint(x,y,Paint)函數。 – Hamel 2011-06-15 17:45:25