タグ付けされた質問 「line-of-sight」

7
斜めの動きが地図をさらに探索するのを防ぐことはできますか?
8方向のいずれかの動きがまったく同じターン(チェスボードスタイルの規則)を要するタイルグリッドで、斜めの動きが直交する動きよりも多くの新しいタイルを表示するのを防ぐことができますか? たとえば、次の画像の赤いボックスです。緑色のセルが現在表示されています(正方形の視野)。8方向のいずれかに1タイルの距離を移動できます。 北東に移動すると、13の新しいタイル(青で表示)を探索します。代わりに南に移動する場合、7つの新しいタイル(紫色で表示)のみを探索します。 各方向への旅行を探索に等しく有利にするにはどうすればよいですか?

2
2Dグリッドの障害物で「見通し線」をシミュレートしますか?
興味深い問題にぶつかった。見通し線をシミュレートする方法を理解する必要があります-障害物がある2Dグリッド上で十分に単純です。グリッドセルが表示されているか、表示されていません。 プレイヤーからn個のスペースを広げたり、隣接する障害物が検出されたときに水平方向の伝播をブロックしたりするなど、本当に初歩的なものを得ることができますが、それを我慢することはできません。他の多くのアプリは、隅などの視線を傾斜させるより洗練された方法を使用しており、私は標準に近づきたいと思っています。 これまでのところ、困惑したときのDCSSは私のインスピレーションの源でした。私は彼らが持っているものに近いものを手に入れたいと思っています:http : //crawl.sz.org/。 どんな洞察もいただければ幸いです-助けてくれてありがとう! (これが恥ずかしいほどにうるさい場合は許してください-数週間前にゲーム開発を始めただけで、追いつくように頑張っています。)
10 2d  grid  line-of-sight 

4
タイルベースのゲームで隠されていないタイルを見つける
私は2Dタイルベースのゲームに取り組んでおり、現在、2D相当のシャドウボリュームを機能させることを試みています。影を落とすべき表面を見つけられません。ゲームのどの時点からでも、隠されていない顔、またはタイル全体を見つける必要があります。 私の質問は、ポイントを与えられた場合、これらのタイル/エッジをできるだけ速く見つけるにはどうすればよいですか?

2
2つのコーナーがある斜めの見通し線
現在、私は視線にBresenhamのラインアルゴリズムを使用しています。問題は、プレイヤーが壁をのぞくことができるエッジケースを見つけたことです。プレイヤーが壁の2つの隅の間を、反対側に特定の角度でギャップがあるように見たときに発生します。 結果として、2つの壁の間のタイルに無効のマークが付けられます。 これを解決するためにブレセンハムのラインアルゴリズムを修正する最も速い方法は何ですか?良い解決策がない場合、より適したアルゴリズムはありますか?どんなアイデアでも大歓迎です。ソリューションは3Dもサポートできる必要があることに注意してください。 編集:私の簡単な解決策は、線のx座標とy座標が変化したときに両方の角が閉じているかどうかを確認することでした。完成した製品の実際のソースコードとインタラクティブなデモについては、http://ashblue.github.io/javascript-pathfinding/を参照してください。

2
レイキャスティングを使用して2Dグリッドに見通し線を実装するより効率的な方法は?
タイルの2Dグリッドと、見通し線を表す、プレーヤーの中心にある座標の近似球を考えます。目標は、障害物(つまり、壁)を超えた視線を遮断することです。 視野内の個々のセルが表示されているかどうかを判断するのは比較的簡単です。ブレゼンハムを使用して、プレーヤーからターゲットセルに光線をキャストします。プレーヤーとターゲットの間で重なっているセルの1つが障害物である場合、ターゲットセル見えません。 さて、私の最初の考えは、見通し内のすべてのグリッドセルを反復処理することでしたが、これは私には非効率的です。たとえば、プレーヤーが壁の隣に立っていて、壁の向こう側のセルが表示されていないと判断した場合、それ以降はレイのすべてのセルが非表示になると判断できます。 また、視野範囲の周囲に沿って各セルにレイをキャストし、各レイに沿って各セルを反復することも検討しましたが、一部のセルを複数回処理することになります。 これを行うより効率的な方法はありますか? 1ターンあたり50セルまで反復することは比較的軽量な計算ですが、私はスピードを求めています。目標は、自動再生で毎秒数ターンを循環できるようにすることです。だから、私がこれをもっと効率的にできるほど、より良いです。

4
多くのエンティティにとって効率的な2D Java見通し線?
今日の私の問題はこれです: 私は多くの民間人を囲んでいますが、それらはarraylistに保存されているクラスです。 彼らが別の民間人のパニックを見たとき、彼らはパニックになり始めて、それは広がるでしょう。 まずStep()、イテレーターをループして各クラス関数を呼び出します。次に、Step()関数では、別の民間のイテレータを通過します。通過するときに、イテレータで他の民間人を見ることができるかどうかを検出しようとします。これは、パフォーマンス時間が0から50ミリ秒になり、市民が100人いる場合です。 これは私が修正する必要のある問題です。オブジェクトがポイントaからポイントbの邪魔になっているかどうかを簡単に検出できるようにしようとしました。 見通し線のコードは次のとおりです。 public static Object LOS(int x, int y, int x2, int y2, String Scan, Object Me, Object You) { DirectionX = (x-x2)/Quality; DirectionY = (y-y2)/Quality; CurrentX = x; CurrentY = y; String[] ScanArray = Scan.split(":"); for(int I=0;I<=Quality;I++) { for(String Type: ScanArray) { if(Type.equals("Boxs")) { Iterator …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.