【问题标题】:Generate random map for tile world [closed]为瓷砖世界生成随机地图[关闭]
【发布时间】: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 块高度),然后您的算法简单地通过它(顺序或随机)并生成洞、丘陵、山脉等。

标签: c# random xna tiles


【解决方案1】:

您可以像这样玩弄这些概率,例如:

int r=rnd.Next(0,100);
tile= (r < 50) ? 0 : (r < 75) ? 1 : 2;

让 50 和 75 变量更有趣。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多