グラデーションフォグオブウォーを作成するにはどうすればよいですか?


14

教育目的でトップダウンの2D RTSゲームを作成しています。現在、私は本当にStarcraftのデザイン/アイデアをコピーしています。Fog Of Warも実装する必要があると判断しました。

私の期待:

  • 現在探索されているエリア(ユニットがあります)を点灯する必要があります。
  • 事前に探索されたエリア(ユニットあった)はより暗くなりますが、ユニットがそこにあったときに何あったかを示します。
  • 探索されていないエリア(ユニットが行ったことのないエリア)は完全に黒である必要があります。
  • 各タイプから勾配の変化があるはずです(たとえば、以前に探索されたものから探索されたもの)。下の図を参照してください。

可視領域間の勾配

大まかな詳細:どうすればいいですか?

回答:


11

ゲームの実装方法に関する詳細を追加する必要がありますが、いくつかの提案があります。

  • マップ全体のビットマップを保持し、新しいエリアを探索するたびに、対応するビットが見えるようになります。露出された領域についても同じことができます。
  • 敵ユニットは、明らかにされたエリアにいる場合にのみ描かれます。FOWエリアの建物については、「最後に見た」状態を維持する必要があります。
  • フレームごとに可視性を更新する必要はありません-最大ユニット速度に応じて、5または10fpsで十分です。
  • 正方形のタイルを使用している場合、必要な結果を得るには4つのマスクが必要です。1つは「ソリッド」(黒塗り)タイル、1つは「エルボ」、1つは「コーナー」グラデーション、もう1つは「直線エッジ」勾配。回転と異なる透明度を使用して、これらから他のすべてを取得できます。

お役に立てば幸いです。


また、空間インデックスを使用してゲームオブジェクトを保存し、どのオブジェクトがプレーヤーに表示されるかをすばやく照会できるようにします。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.