質問

これは明白である。

私は、2次元地図のタイルがしたい"水"への旅行を通じてこのマップ。でパイプを特定のタイル、ニーズを満たすように、水、すべてのタイルに到達するのに要するその他のタイル.わたしは現在の地図を入力は各タイルとノードを各ノードを持つすべての適当なタイルであるといわれている。私のノードに格納ソートされた配列には、最初にx、y.また、一部のタイルは"ゲート'タイルできる止水を流しております。これらは同じ系統のノードのタイルで<日本語仮抄訳>欧州連合活躍しました。

の問題などの見分散させます。

当初は思ったそれぞれのパイプ(下水)クリストの現在"と"フル水タイルで分散水への直接の現在の'タイル、そしてスイッチ機能に特化することにより完全なリストが適しています。の電流のリストを拡大による周辺のタイルの'現在'瓦です。る場合には、このたびに水が流れもが思いはそれを動作させるためにはゲート その水の流れを停止することができましたが、再させ、停止し、再度等) 特定のポイント。

今はいつかえば直通なので大変助かりの水堆積場に一つだけのタイルしながらタイルにはもって押し、水を少しずつをランダムに隣接タイルにない場合は、ボタンを積極的ゲートがあります。) この水sloshes'周辺既にタイルの代わりに流れる対外証.' であるが、その流れをはるかにインパクトは小さいもの自然になります。

このように終私の問題ですから。

このコードです。

編集:新しいアイデアです。もっともに、パイプ検索を通じてのノードを使用した無料タイルの水を更新し、このよう決非効率については、特に複数のパイプ.

役に立ちましたか?

解決

これまで多くのゲーム開発--多くありますがGDC談Gamasutra/ゲーム開発者雑誌の特集ではこの対象です。ティスト-イン-レジデンスの目的となっていると思い 日本海洋学会Stam's"実時間流体力学ゲーム"から、2003年のGDC.

このサービスを簡略化の方法を行う 移流 を介して 線形再 えの問題点もの作品も非圧縮性流体とは言うものの、この作品より、水以外のガス)としてリニア印刷とは基本的にその設定のグリッドを表す流体の密度々スペース(このタイル)、そして、各フレームの各ポイントを求め、圧力で周辺のポイントから、流体が からのもの?" ことがわかりやすくなるより解決し、他方で、流体からこの点をどこへいくのか").

ミック-西日本の論流体力学 のためのGamasutra extends Stamの論文であることがあり向いただいた方がよいと思いますが始ます。

もあります 最近のインテル主催のGameDevるには、より完全ソリューション, で複雑な作業は、主にグラフィカルレンダリング側面の3d.

楽しみがさらに広がるでしょう 矮星要塞 例のタイル張りの2次元流体力学が解ってチームの問題を扱う高速流圧流体;時には彼の水の動きにありそうなsluggishlyよい、取得したブロックおよびます。

論文をまとめた数学とアルゴリズムのほうがはるか塾へのスタックオーバーフローボックスがあるのに二つの一般的な注意点をお願いしています:

  1. 水のシミュレーションは非常に計算す。年取り組んでPythonでは、この場合、リアルなパフォーマンスの問題--電池が漏液するおそれがあまで一部のプロファイリングアルゴリズムのホットスポットでのループかうことを殺しframerate.すーリゾート 数値はPython を高速C-基配列ます。
  2. がありますが、数学ではゲーム開発などにより多くの人に期待!

他のヒント

一部のヒューリスティックスの前提条件

  • 離散"下落"を占める同一スクエア各
  • の水がとどまっているわけではない超高与えられたタイル
  • の水が連続
  • 場合の障壁はなんという意味なのでしょ壁
  • 場合の障壁はなんという意味なのでしょ開広場

毎水溜まり、維持し、リストのエッジ形オマス目次いですね。

場合の障壁が

amend the lists of edge and open squares for any puddles that were touching it

場合の障壁が

if (it was covered)
    pick a non-wall square next to it at random, and add the drop from the barrier there.
amend the lists of edge and open squares for any puddles next to the block

追加された場合はド:

if (the square "under" the pipe is empty)
   fill it
else
   consult the list of edge square associated with the pool under the pipe, and select the one closest to the pipe (if more than one is closest, choose from the candidates at random), and fill it.  
amend the lists of edge and open squares for the puddle (be prepared to merge with neighboring puddles if necessary)

取り外すと落下

 find the edge (not open!) square farthest from the sink (or randomly select from the equivalent candidates), and empty it
 amend the lists of edge and open squares for the puddle

(a程度こちらではの"遠"囲の距離の他、ヒートシンク、その正方形の中に水溜まりができな場合は空のもとシンク)

日本には非常に現実的なまずの動態について語が維持継続的に窪ん"に滴下配管に最利用できる空間が与えられ滴.

あなたのモデルは、潜在的な差や圧力の概念が含まれていますか?

何も流れないように、

は言う空のタイルがゼロ圧力、完全なタイル2つのタイルの間のパイプはその後、水が圧力を均等に流れtheresの場合は10の圧力を有し、ゲートがパイプを閉じます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top