2016-12-06 1 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