2016-04-16 8 views
0

2d等角投影ゲームを開発しています。あなたは街の車を運転しています。 接続された道路でランダムマップを生成しています。 私はスクリプトを書いています - 私はできると思いますが、alghoritm自体のアイデアを見つけることはできません。 私は100x100の地図を持っていると言うと、私はブーリアンテーブル1を構築したいと思います道路0は道路ではありません。手続き的道路生成、Unity

私はこれまで、水平線と同じ垂直線の線数をランダムに描画しています(例4〜8)。しかし、このロードマップはまっすぐです。

いくつかアイデアを共有できますか?何か助けてください

答えて

1

質問は簡単な答えのために広すぎます。さまざまな程度の複雑さの中で、たくさんの方法があります。

しかし、ヒントとして、別の観点から問題を検討してください。最終的には道路がほしいと思っていますが、なぜそこに道路がありますか?あなたのケースでは はその都市です。都市は通常は長方形の都市ブロックで構成されています。 1つの方法は、長方形の図形で地図を塗りつぶす方法を見つけて、道路の一部(または一部のみ)を検討することです。

または三角測量アルゴリズムを調べて、ランダムな点の束でマップを三角形分割することができます。いくつかの三角形を結合し、それらのエッジを道路として使用します。

ランダムウォークの設定を使用しても、完全には回りません。

か...

は...真剣にかかわらず、オプションおよび可能な解決策は、マニホールドと、あなたのスキルレベルに依存している(だけでなく、あなたは最終的にあなたの街を見てみたいですか)。 あなたの特定の問題を検索しません。必要に応じて他のアルゴリズムを適用してみてください。 roguelikeゲームのランダムなダンジョン生成に関するチュートリアルがたくさんあります。 最終的には、おそらく最良の結果を与える1つの世代のアルゴリズムはないでしょうが、多くの組み合わせがあります。

+0

こんにちは@yesとあなたのヒントのおかげで、私はいくつかの有用な情報を見つけました。ランダムなサイズの線形グリッドマップとランダムマップオブジェクトを考えました: [リンク](http://smilesoft.pl/images/games/roads.png) もう一度お疲れ様でした。 ! – budda1989

+0

@ budda1989は今のところよく見えますが、今はそれを続けていきます。あなたはそれらの道を持っており、あなたは彼らが交差するところを知っています。今度は2つの交差点の間の道路のいくつかをもう一度削除してください。これはすでに格子の性質を少しはずしてしまいます。たとえば、長い道のりをチェックし、U字カーブを追加したり、ブロックを分ける道路をつくったり、交差点をついてラウンドアバウトに変えたりすることができます。瞬時に私の心に来たちょっとしたアイデアです。 – yes

+0

または北から南への道路で2(または3)の地図を分割することもできます。東から西への道(または2つまたは3つ)で両側を分割し、それぞれ異なる高さに分割します。次に垂直に分割し、次に水平に分割します。これを数回してください。いくつかの道路を取り除き、いくつかの迂遠路線を作って、非常に長い直線路線で道を育てるなどしてください。 何か関連していない、矢印を45度回転させて、atm oneはどちらの方向を意味するのか推測することができます;) – yes