【发布时间】:2016-02-02 15:55:24
【问题描述】:
C#/XNA 平台游戏。
我有一个 int[,] 数组,例如:
int[,] {
{0, 0, 0, 1},
{0, 0, 1, 2},
{0, 1, 2, 2},
{1, 2, 2, 2},
}
输出:
[air][air][air][grass]
[air][air][grass][dirt]
[air][grass][dirt][dirt]
[grass][dirt][dirt][dirt]
现在我有一个填充 int 数组的随机函数:
Random rnd = new Random();
for (int i = 0; i < 8; i++)
{
for (int x = 0; x < 23; x++)
{
tiles[i, x] = rnd.Next(0, 3);
}
}
输出:
什么是正确生成地图的好算法?就像空气增加了 45% 以上,我想要在泥土上种草。
【问题讨论】:
-
你可以申请一些random distribution。
-
地图生成是相当广泛的主题。这已经被问过了(例如click)。简单的做法是从初始 plain 地图开始,该地图具有一定的地面水平(例如 5 块高度),然后您的算法简单地通过它(顺序或随机)并生成洞、丘陵、山脉等。