2016-08-14 7 views
0

私はphpを使用して手続き型マップを生成することに興味があり、静的にすることができます。私は正しい方法で私を取得する必要があります...私はそれについて多くの記事を赤く、私は基本的なマップの形状を得るためにノイズ生成を使用する必要があることを理解しています。それは後何ですか?私はシンプルなタイル32x32を使用します。それは可能な/効率的なPHPを介してそれを行うには?手続き生成

+0

達成しようとしていることの例を挙げることはできますか?また、なぜあなたはそのような仕事のためにウェブ技術を使用しますか?ありがとう – Aziz

+0

http://i.stack.imgur.com/T0o4T.png、このようなもの。それはWebベースのゲームになるだろう。 –

答えて

0

PerlinまたはOpenSimplexノイズを使用してください。

あなたがこのいずれかを自分で実装するか、単純にライブラリを使用することができます

:今、あなたはあなたのノイズを持っていることを

$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; 
    } 
} 

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

あなたはこのライブラリを使用して配列にハイトを生成することができます配列が移入された場合は、JSなどを使用してフロントエンドで色で表現できます。その目的の詳細を理解することができますが、本質的には、あなたの高さマップであなたの数字の範囲を見つけ、地形の種類ごとにしきい値を決定します。

私はハイトを生成し、ここでは上のノイズを使用してレンダリングのチュートリアルを書きました:https://plaxdev.wordpress.com/2017/05/04/procedurally-generating-islands/

これは、JavaScriptのみをPHPを使用しませんが、あなたの場合はJSでハイトマップをレンダリングするの背後にある考え方は、その記事に含まれていますそれに苦しんでいる。