2015-11-02 67 views
3

我尝试着手用矢量生成2D地图生成器。现在我有一些问题,我应该如何去做。用矢量生成2D世界

public float[] gen() { 
    float[] vec = new float[100]; 
    float x = 0, y = 0; 
    float a = 20, 
      b = 10; 
    for (int i = 0; i < vec.length; i += 2) { 
     vec[i] = MathUtils.random(x, x + a); 
     vec[i+1] = MathUtils.random(y - b, y + b); 
     x = vec[i]; 
     y = vec[i+1]; 
    } 
    return vec; 
} 
  1. 这将是从获得verctors的好办法? var a,b可以改变为光滑的土地/丘陵。

  2. 我想到了一幅永无止境的地图。但我怎么才能渲染玩家的角色呢?我将使用box2d。

  3. 生成的世界部分应保存到文件。我应该将它们保存为像Minecraft中的块吗?什么文件fromat是reccoment(json)?

我只是希望能够找到一些有用的信息。

+1

我建议你研究一些众所周知的地形生成算法,看看它们是如何完成的,比如钻石平方算法:https://en.wikipedia.org/wiki/Diamond-square_algorithm这会给你透视关于如何前进。 – Frecklefoot

回答

1

回答第二问:
你必须有一个Camera

if(x >=camera.project(new Vector3(camera.position.x - camera.viewportWidth - 25, 0, 0)).x) && x <= camera.project(new Vector3(camera.viewportWidth + camera.position.x + 25, 0, 0)).x) 

和y相同或低于此laggy(每帧有创造了新的Vector3
对象,所以... ) 祝你好运!