/ 2D都市ビルダのトラフィックを処理する - 2次元、シミュレーション、トラフィック、アイソメトリック

2次元都市ビルダーの交通を処理する - 2次元、シミュレーション、交通量、等尺性

私は2Dアイソメの都市ビルを作成しています今日私は特定のコードを要求することなく「ベストプラクティス」の質問をしています。 すべての都市ビルディングゲームと同様に、建物や道路などを配置することができます。プレーヤーは道路に接続されているかどうかにかかわらず、あらゆる場所に建物を配置することができます。それに加えて、1つの建物(それをセンタービルと呼ぶ)があり、すべての建物を(道路で)接続する必要があります。 あまりにも多くの計算をせずにFPSを壊す必要があります。

今、私は各建物にタイマージョブを持っています建物の囲まれたタイルの1つが道路であるかどうかをチェックする。チェックは簡単なので、多くの建物でうまくいきます。 しかし今、センタービルとの接続を確認したいと思います。囲まれたタイルの1つがセンタービルディングの囲まれたタイルの1つに道路接続しているかどうかをチェックするパスファインダーのようなものを使用することが必要である(私の意見では)ことを確認する。 私は頻繁にこれをチェックすることはできません。これはFPSを30以下に完全に壊すからです。私の考えは、道路が建設されたり、道路接続を "再計算"するために破壊された場合、イベントを発射することでした。しかし、別の問題が出てきます...地図の真ん中に道が崩壊するかもしれないので、建物は実際には遠く離れていますので、あまりにも時間がかかるかもしれない建物を探す必要があります。

私の最後のアイデアは、タイマーキューのようなものを作成し、これらの項目を徐々に処理することですが、私が試行錯誤の方法を使い続ける前に、アイデアを尋ねたいと思います。

本当にあなたのアイデアを楽しみにしています! イェキキ

回答:

回答№1は0

あなたは、各建物にそれをセンタービルに接続するタイル(パス)。次に、プレーヤーがタイルをランダムに破棄したときに、各建物をテストして、その道路タイルを塗りつぶすかどうかを調べることができます。

あるいは、各道路タイル店舗どの建物がそれを必要とするのか、タイルが破壊されたときに建物が直ちに旗を投げます。しかし、これは非常に乱雑になるかもしれませんが、まさにスピードのクリーンアップコールをバックグラウンドにしてくれます。

どちらの方法もかなり面倒です。 おそらく、プレイヤーは他の道路の隣またはセンタービルの隣に道路を置くことができないという規則にすることができます。そして、プレーヤーが道路タイルを削除すると、切断されたすべての道路を破壊するペイントスタイルの塗りつぶしを行います。タイルをランダムにチェックして、違法に配置されているかどうかを確認することもできますが、注意が必要な場合は不要です。