c# - 为瓷砖世界生成随机 map

标签 c# random xna tiles

<分区>

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);
  }
}

输出:

Platformer Example

什么是正确生成 map 的好算法?就像超过 45% 的空气和在泥土上,我想要草。

最佳答案

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

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

让 50 和 75 变量更有趣。

关于c# - 为瓷砖世界生成随机 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35158003/

相关文章:

c# - 计算大量粒子之间经历的类似重力的最快方法?

c# - 如何更改 Office 功能区的背景和前景

c# - 使用 C# 问题打开 Java 控制台

c# - DbContext 在多个 Controller 中使用 - 如何做到这一点?

c++ - map 中的随机元素

c# - 所有文件的全局 "using SpriteBatch = MySpriteBatch",而不是每个文件

c# - 从 C# 启动应用程序 (.EXE)?

c++ - 如何打乱数组以便所有元素改变它们的位置

java - 想知道为什么要这样计算中位数?

c# - 如何从 XNA 游戏项目启动和调试控制台线应用程序