2015-08-18 36 views
1

在編寫我的2D沙箱遊戲時,我決定添加一個程序生成引擎來生成地形。我決定實現它的方式是使用鑽石平方算法來生成值,然後根據這些值我將導出匹配的地形(每個地形都有一個可以生成的範圍)。我可以找到的算法的唯一示例(發現here)需要一個奇數的網格大小(即17 x 17,而不是16 x 16)來生成。我理解爲什麼並且想知道我是否應該使用不同的算法,或者是否有辦法使它適用於該算法。使用程序生成功能生成一個16x16的塊組成

+0

該算法通常用2^n x 2^n個網格來解釋。但是你總是可以計算下一個更大的2^n的大小並使用子集。有什麼問題? – Gene

回答

0

隨着AA 17×17格的數字,你可以只取4個角落的每個小正方形的平均值以獲得數的平方。例如,用3×3的,而不是17×17,說你有

3--2--1 
| | | 
4--3--1 
| | | 
5--4--2 

Tha t格定義了4個小方格。正方形將具有值

(3+2+4+3)/4=3.00 (2+1+3+1)/4=1.75 
(4+3+5+4)/4=4.00 (3+1+4+2)/4=2.50 

將17x17網格變成16x16正方形的想法相同。還是我不明白?

+0

我不知道我完全理解這個解決方案,但如果你的意思是將值作爲瓦片的角落,那麼這將不起作用,因爲我正在試圖使瓦片具有固定的高度並且沒有不同的角落高度。對不起,如果我不理解。 –

+0

對不起,我覺得自己像一個白癡,你的意思是平均所有的角落找到固定的高度?如果是這樣,謝謝,我會嘗試。它可能比其他任何東西都更好 –

+0

是的,平均四個角找到一個小方塊內的數字,高度或數字代表的任何數字。 –