基于种子的java2d地形生成

基于种子的java2d地形生成,java,lwjgl,Java,Lwjgl,我正在尝试用LWJGL制作一个2D游戏。我在地形生成方面遇到了一个问题。我目前有一个生成地形的算法,但它总是随机的,我再也不能得到相同的世界了。我想做一个基于给定数字生成x和y坐标的算法 我现在这一代人看起来像这样: final float STEP_MAX = 1f; final float STEP_CHANGE = 1; final int HEIGHT_MAX = 100; double height = HEIGHT_MAX; dou

我正在尝试用LWJGL制作一个2D游戏。我在地形生成方面遇到了一个问题。
我目前有一个生成地形的算法,但它总是随机的,我再也不能得到相同的世界了。我想做一个基于给定数字生成x和y坐标的算法

我现在这一代人看起来像这样:

     final float STEP_MAX = 1f;
     final float STEP_CHANGE = 1;
     final int HEIGHT_MAX = 100;

     double height = HEIGHT_MAX;
     double slope = STEP_MAX;

     for (int x = -WORLDSIZE; x < WORLDSIZE; x++) {
          height += slope;
          slope += (Math.random() * STEP_CHANGE) * 2 - STEP_CHANGE;

          if (slope > STEP_MAX)  slope = STEP_MAX;
          if (slope < -STEP_MAX) slope = -STEP_MAX;

          if (height > HEIGHT_MAX) { 
              height = HEIGHT_MAX;
              slope *= -1;
          }
          if (height < 0) { 
              height = 0;
              slope *= -1;
          }
          Tile newTile = new Tile(x*25,(int)height*25,25,25,TileType.Grass);
          tiles.add(newTile);
final float STEP_MAX=1f;
最终浮动步长变化=1;
最终内部高度_MAX=100;
双倍高度=最大高度;
双斜率=最大步长;
对于(int x=-WORLDSIZE;x步长最大值)斜率=步长最大值;
如果(斜率<-步进最大值)斜率=-步进最大值;
如果(高度>高度最大值){
高度=高度×最大值;
斜率*=-1;
}
如果(高度<0){
高度=0;
斜率*=-1;
}
新瓷砖=新瓷砖(x*25,(内部)高度*25,25,25,瓷砖类型草);
添加(新文件);

提前感谢您的帮助。

如果您自己创建随机数生成器(而不是让Math.random()为您创建),您可以指定一个种子:

Random random = new Random(yourSeed);
random.nextDouble();
Random
类还有许多有用的方法,您可能想看看


更多信息:

如果您自己创建随机数生成器(而不是让Math.random()为您创建),则可以指定种子:

Random random = new Random(yourSeed);
random.nextDouble();
Random
类还有许多有用的方法,您可能想看看


更多信息:

Random
每次都会获得相同序列的种子。你说的Random是什么意思?Random每次都会获得相同序列的种子。你说的Random是什么意思?