現在、私のタイルベースのアイソメトリックエンジン用のタイルエディタを開発中で、現在はオートタイル機能を使っています。タイルベースのエディタのアルゴリズムが必要です
この時点では、マーチングスクエアアルゴリズムに基づいて、ビットマスクを使用して、正しいコーナーアセットを計算してタイルタイプを配置することができました。
私はしばらくの間、特定のタイルタイプをより低いレベルのマッチするタイルタイプで囲みようとしていました。 Starcraftのエディタ(Staredit)が、一致するアセットの低いタイルタイプを自動的に囲む方法を考えてみましょう。高い草がより高い資産高い汚れがどのようにstareditからこの画像の
お知らせ:たとえば
私は、それぞれの高さが注文した3つの資産を持っています。アセット3が高い壁を表し、低い資産が低い壁を表すと考えてください。これらの資産はメタデータに配置されます。 0はメタデータ内の空のタイルを表します。
(3,2,1)
最初の3つの資産は、ユーザによって選択された位置にメタデータ内に配置されることになります。
0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0
0,0,0,0,3,0,0,0,0
0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0
そして3資産は、最後2資産が1つの資産に囲まれることになる2資産
0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0
0,0,0,2,2,2,0,0,0
0,0,0,2,3,2,0,0,0
0,0,0,2,2,2,0,0,0
0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0
に囲まれることになります。最終的な結果は次のようになります。
0,0,0,0,0,0,0,0,0
0,0,1,1,1,1,1,0,0
0,0,1,2,2,2,1,0,0
0,0,1,2,3,2,1,0,0
0,0,1,2,2,2,1,0,0
0,0,1,1,1,1,1,0,0
0,0,0,0,0,0,0,0,0
このプロセスの後、各メタデータ値の正しいアセット/コーナーを計算するために、オートティリングアルゴリズムが実行されます。
これの別の例は、このHTML5アプリケーションのものです。壁がどのように最高の資産であるのか、草、土、そして最後に水が続きます。各資産は低い資産で囲まれています。 Marching Squares HTML5 Demo
私はフラッドフィルアルゴリズムを調べましたが、達成しようとしているものには当てはまりません。
誰かがこのタスクを達成するためにどのアルゴリズムを使用すべきかについての解答または助言があれば、この質問にお答えください。
私のエンジンに使用している言語はFlash As3です。