在編寫我的2D沙箱遊戲時,我決定添加一個程序生成引擎來生成地形。我決定實現它的方式是使用鑽石平方算法來生成值,然後根據這些值我將導出匹配的地形(每個地形都有一個可以生成的範圍)。我可以找到的算法的唯一示例(發現here)需要一個奇數的網格大小(即17 x 17,而不是16 x 16)來生成。我理解爲什麼並且想知道我是否應該使用不同的算法,或者是否有辦法使它適用於該算法。使用程序生成功能生成一個16x16的塊組成
回答
隨着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正方形的想法相同。還是我不明白?
我不知道我完全理解這個解決方案,但如果你的意思是將值作爲瓦片的角落,那麼這將不起作用,因爲我正在試圖使瓦片具有固定的高度並且沒有不同的角落高度。對不起,如果我不理解。 –
對不起,我覺得自己像一個白癡,你的意思是平均所有的角落找到固定的高度?如果是這樣,謝謝,我會嘗試。它可能比其他任何東西都更好 –
是的,平均四個角找到一個小方塊內的數字,高度或數字代表的任何數字。 –
- 1. R:生成功能
- 2. 生成一組
- 3. 生成一個解析器程序生成的BNF
- 4. 程序生成使用initWithVertexBuffers
- 5. ,使用同一程序的生成值?
- 6. 的JavaScript生成功能
- 7. 生成使用宏功能用C
- 8. 生成一個Rails應用程序
- 9. 功能NHibernate - 中使用hilo生成
- 10. VHDL,使用功能爲生成聲明
- 11. 文章生成功能
- 12. 功能打印生成器
- 13. 顏色生成功能
- 14. 使用TFS生成模板生成MSI +高級安裝程序
- 15. 程序圖生成
- 16. 組成值的生成器生產者
- 17. 生成一個序列號
- 18. 升壓成功生成,但不能產生一個makefile。我哪裏做錯了?
- 19. Python生成器生成一切從另一個生成器調用
- 20. 默認應用程序成功生成但不工作
- 21. Android應用程序生成
- 22. 應用程序生成UUID?
- 23. 用Haskell生成程序
- 24. 爲C++模塊生成.net程序集
- 25. jQuery的AJAX功能產生成功
- 26. 使用SQL Case功能來生成一個列
- 27. 使用Perl生成組合
- 28. 生成多個jquery點擊功能
- 29. 程序生成使用類Pygame的
- 30. 功能爲cucumber-html-reporter生成截圖生成「5000後超時功能」錯誤
該算法通常用2^n x 2^n個網格來解釋。但是你總是可以計算下一個更大的2^n的大小並使用子集。有什麼問題? – Gene