使用向量生成2D世界

3

我想开始使用向量生成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. 这是获取向量的好方法吗?变量a、b可以根据需要进行调整,以获得平稳的地形/山丘。

  2. 我考虑过一个永无止境的地图。但是如何只渲染玩家所看到的部分呢?我将使用box2d。

  3. 生成的世界部分应该保存到文件中。我应该像Minecraft一样将它们保存为块吗?哪种文件格式更推荐(json)?

我只是想获得一些前瞻性的观点。


1
我建议你研究一些知名的地形生成算法,看看它们是如何实现的,比如钻石-方块算法:https://en.wikipedia.org/wiki/Diamond-square_algorithm 这将让你了解如何继续前进。 - Frecklefoot
1个回答

0

第二个问题的答案。
你必须要有一个 相机

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与此相同或更少的延迟(每帧都会创建新的Vector3对象,因此...)祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接