【问题标题】:Generate a 16 x 16 chunk made up of tiles using procedural generation使用程序生成生成由瓷砖组成的 16 x 16 块
【发布时间】:2015-08-18 00:24:14
【问题描述】:

在我的 2d 沙盒游戏的编程中,我决定添加一个程序生成引擎来生成地形。我决定实现它的方式是使用菱形正方形算法生成值,然后根据这些值我将推导出匹配的地形(每个地形都有一个可以生成的范围。我能找到的算法的唯一示例(找到here)需要一个奇怪的网格大小(即17 x 17,而不是16 x 16)来生成。我理解为什么并且想知道我是否应该使用不同的算法,或者是否有办法让它工作这个算法。

【问题讨论】:

  • 算法通常用 2^n x 2^n 网格来解释。但是您总是可以计算下一个更大的大小,即 2^n 并使用一个子集。有什么问题?

标签: java algorithm sandbox tile procedural-generation


【解决方案1】:

对于 17x17 网格上的数字,您只需取每个小正方形的 4 个角的平均值即可得到该正方形的数字。例如,使用 3x3 而不是 17x17,假设您有

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

该网格定义了 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 方格的方法相同。还是我不明白?

【讨论】:

  • 是的,取四个角的平均值,求出小方块内的数字、高度或数字代表的任何内容。
猜你喜欢
  • 1970-01-01
  • 2015-08-04
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 2014-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多