程序生成

时间:2016-08-14 20:18:07

标签: javascript php html css

我对使用php生成程序图感兴趣,它可以是静态的。我只需要让我走上正确的道路......我发表了许多关于它的文章并了解我需要使用噪声生成来获得基本的地图形状。但那后呢?!我将使用简单的瓷砖32x32。通过PHP它甚至可能/有效吗?

1 个答案:

答案 0 :(得分:0)

研究使用Perlin或OpenSimplex噪音。

您可以自己实现,也可以只使用库:

https://github.com/martinlindhe/php-noisegenerator

您可以使用此库生成高度图到数组中:

$perlin = new \NoiseGenerator\PerlinNoise(3000);
$width = 100;
$height = 100;

$octaves = array(64, 16, 4, 2);
$noise = array();
for ($y = 0; $y < $height; $y += 1) {
    for ($x = 0; $x < $width; $x += 1) {
        $num = $perlin->noise($x, $y, 0, $octaves);
        $raw = ($num / 2) + .5;
        if ($raw < 0) $raw = 0;
        $noise[$x][$y] = $raw;
    }
}

现在您已经填充了噪声阵列,您可以使用JS或任何您想要的颜色在前端用颜色表示。我会让你弄清楚这方面的细节,但实际上,在你的身高图中找到你的数字范围,并确定不同类型地形的阈值。

我写了一篇关于生成高度图并使用噪声渲染它们的教程:https://plaxdev.wordpress.com/2017/05/04/procedurally-generating-islands/

这不使用PHP,只使用JavaScript,但是如果您正在努力解决这个问题,那么在JS中渲染高度图背后的想法就会包含在内。