2016-12-06 3 views
0

私はLWJGLで2Dゲームを作成しようとしています。地形の生成に問題があります。
私は現在地形を生成するアルゴリズムを持っていますが、常にランダムであり、同じ世界を再び得ることはできません。与えられた数に基づいてx座標とy座標を生成するアルゴリズムを作りたいと思います。種を使用したJava 2D地形生成

私の現在の世界の世代が次のようになります。

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

はあなたの助けのために事前にありがとうございます。

+2

'Random'は同じ順序で毎回なりますシードを取ります。 – teppic

+0

ランダムで種をとることはどういう意味ですか? – Setlock

答えて

3

あなたは乱数ジェネレータ(むしろMath.random()はあなたのためにそうさせるよりも)自分で作成した場合、あなたはシード指定することができます。

Random random = new Random(yourSeed); 
random.nextDouble(); 

Randomクラスもあなたがかもしれない多くの便利なメソッドを持っています見てみたい

さらに詳しい情報:https://docs.oracle.com/javase/8/docs/api/java/util/Random.html

関連する問題