タグ付けされた質問 「hexagonal-grid」

グリッドタイリングに通常の六角形が使用される、サーフェスの通常のテッセレーション。

6
垂直対水平の16進グリッド、賛否両論[非公開]
16進グリッドでは、タイルを尖った側面を上にして配置し、西東軸に沿って移動したり、エッジを上にして配置したりして南北軸に沿って移動したりできます。 。 水平または先の尖った六角グリッド: 垂直またはフラットサイドの六角グリッド: このページによると、垂直方向の配置は、ペンと紙のRPGで「はるかに人気があります」が、その理由は説明されていません。このブログ投稿でも両方の種類に言及していますが、どちらか一方を使用する理由はありません。 そして、あなたがヘックスを使用するいくつかのPCゲームを見ると、両方とも彼らの支持者がいるようです: 水平:ヒーローズオブマイトアンドマジックシリーズ(Vを除く)、文明V ... 垂直: Panzer Generalおよび類似の多くのウォーゲーム、Wesnothの戦い... しかし、六角形グリッドの垂直または水平レイアウトを選択する主な理由は何ですか? 個人的な好みではなく、データ構造、グラフィックス、ゲームプレイなどに関して客観的な利点と欠点を探しています。または、どちらの方向を選択するかは本当に重要ではありませんか?

4
六角形マップの代わりに八角形マップを使用しないのはなぜですか?
六角形タイルが正方形タイルよりも優れていることを理解しています。しかし、なぜ八角形が代わりに使用されないのですか?私は、それらが8方向のより良い、より自然な動きを提供すると思うでしょう。 私はいくつかのゲームでそのようなマップを使用することを考えていましたが、それを使用しているゲームを見たことがないので、使用するのに明らかに欠陥があるものを見逃したのでしょうか?

5
ブラウザベースの戦略ゲームのデータベースからPHPで六角形の世界地図を作成する方法
PHPブラウザベースの戦略ゲームの六角形の世界地図を作成しようとしています。データベースに、行ごとにid、type、x、y、および占有データを含むテーブルを作成しました。typeはタイルの種類で、数字で定義されます。たとえば、1は草です。マップ自体は25 x 25です。 クリック可能なタイルを使用してデータベースからマップを描画し、矢印を使用してマップ内を移動できるようにします。私はこれから始める方法について本当に手がかりを持っていません、そして、どんな助けも感謝されるでしょう。

2
六角形のグリッド/タイルチュートリアル[終了]
六角形のグリッドベースのマップ/ゲームの作成に関するプラットフォームまたは言語にとらわれない(ステップバイステップが望ましい)チュートリアルはありますか?私は主にグリッド/タイルの基本に興味があり、高度なゲームエンジンのものには興味がありません。これまでのところ、私はこれらを見つけました: ゲームやその他のプロジェクト用の六角形のグリッド 六角形のグリッド数学

2
六角形のグリッドでタイルのリングを取得
この投稿のおかげで:六角形のタイルとそれらの隣接する隣人を見つける、私は与えられたタイルに隣接するタイルを収集することができます。しかし、オフセットで指定されたタイルの「リング」のみを提供するアルゴリズムにかなりこだわっています。そのStack Overflowポストで与えられたアルゴリズムは、タイルを収集する順序を正確に気にしません。 オフセットごとに6タイルが追加されることを知っています。 オフセット1は、6つのタイル(最初の隣接タイル)を提供します。 オフセット2は12です。 オフセット3は18などです。 オフセットごとに6の一定の成長があります。したがって、これらのオフセットに適応するルールがあるはずだと思います。これを正確に把握することはできません。誰でも?

3
六角形のクリックボックスを認識する
私はあえぎ六角形を含むゲームに取り組んでいます。 現在、私は使用している六角形の画像を持っています(すべての辺は同じ長さです... 50x50ピクセルの画像に収まります)。 私はC#にやや新しい、XNAには本当に新しいですが、ポイントと角度に基づいた複雑なifステートメントを実行するのではなく、呼び出すことができる簡単な方法がありますか?
17 c#  xna  hexagonal-grid 

2
六角形のゲームグリッドの標高モデル
TL; DR: Civスタイルの六角形グリッドのどこに標高を固定する必要がありますか?中央、側面、または頂点?(またはより複雑ですか?) 適切な質問: シド・マイヤーのアルファ・ケンタウリ、私たち全員が知っていて愛している(たぶん?)古典的なゲームをちょっと考えてみましょう。このマップモデルは、古典的なCivフォーミュラに目に見える地形標高のまったく新しいコンセプトを導入しました。SMACでは、ゲームボードのすべての頂点に標高があり、マインドワームが隅々まで待っていることを考慮して、マップの美しい起伏のある丘を完全に必要とします。 頂点のみの標高マップはきれいに六角形のグリッドに変換されますか? 明らかな代替案は、側面ベースの標高マッピングと中央ベースの標高マッピングです。内側の頂点の標高マッピング(崖の機会を提供します!やった!) 最後のオプションは、三角形格子をゲームグリッドに適用し、中心と頂点を囲み、頂点のみまたは内部の頂点の高度を持ちます。 これらのオプションのどれがうまく機能する可能性がありますか?急いでCPUとRAMからすべてのジュースを吸い取る可能性が高いのはどれですか?

3
nプレイヤー間で16進グリッドを均等に分割する方法は?
単純な16進グリッドベースのゲームを作成していますが、マップをプレーヤー間で均等に分割する必要があります。マップはランダムに作成され、プレイヤーに比較的小さなエリアでほぼ同じ量のセルを持たせたいです。たとえば、マップに4人のプレーヤーと80個のセルがある場合、各プレーヤーには約20個のセルがあります(スポットオンである必要はありません)。また、各プレイヤーは、隣接するセルを4つ以下にする必要があります。つまり、マップが生成されるとき、最大の「チャンク」はそれぞれ4セルを超えることはできません。 これは2人または3人のプレイヤーにとって常に可能ではないことを知っています(これは「マップの色付け」問題に似ているため)。しかし、4〜8人のプレイヤーの場合、この問題にどのように対処できますか?

3
楽しい等尺性六角形
レンダリング時にいくつかのサイズのピクセルサイズ全体に追加で解決される、最も見栄えが良く、グラフィカルに規則的な等角(押しつぶされた平らな側面)ヘックスを与える角度と長辺/短辺の比率は?

3
六角形グリッド上の最短経路を見つける
私はいくつかのシミュレーション要素を持つターンベースのゲームを書いています。現在私がやっていることの1つは、パス検索です。私がやりたいのは、AI冒険者を1ターンごとに、現在のx、yとターゲットx、yを使用して、ターゲットに1タイルずつ近づけることです。 自分でこれを理解しようとすると、4つの方向を問題なく決定できます dx = currentX - targetY dy = currentY - targetY しかし、6つの方向のどれが実際に「最良」または「最短」ルートであるかを判断する方法がわかりません。 たとえば、現在の設定方法では、東、西、NE、NW、SE、SWを使用していますが、NEタイルに到達するには、NWを移動するだけでなく、Eastを移動してからNWを移動します。 私はこれがすべてとりとめのないことを願っています。リンクを1つまたは2つでも使用して、開始できます。私が見つけた情報のほとんどは、グリッドの描画と必要な奇妙な座標系の探索に関するものです。

4
16進マップで等しい領域を生成する
たとえば、大きな(X x Y)ヘックスマップを使用して、国をシミュレートするために、それを接続されたヘックスのN領域に分割するにはどうすればよいですか? 目標は、形状は異なるがサイズが等しい国を含む現実の地図のように見える16進マップを生成することです。

7
XNAで六角形のタイルマップピッキングを実装するにはどうすればよいですか?
六角形がクリックされたときに確認する必要がある六角形のタイルマップがあります。六角形は実際には接触しておらず、それぞれの間にわずかな隙間があります。 全体を複雑にすることなく、六角形がクリックされたかどうかを確認する方法を知っている人はいますか?
13 c#  xna  hexagonal-grid 

6
タイルセットの境界の効率的なアルゴリズム
この投稿を改善したいですか?引用や回答が正しい理由の説明など、この質問に対する詳細な回答を提供します。十分な詳細がない回答は、編集または削除できます。 地図を形成する既知の有限サイズのタイルのグリッドがあります。マップ内の一部のタイルは、テリトリーと呼ばれるセットに配置されます。この領域はつながっていますが、その形状については何もわかっていません。ほとんどの場合、それはかなり規則的なブロブになりますが、一方向に非常に長くなる可能性があり、潜在的に穴がある可能性もあります。領土の(外側の)境界を見つけることに興味があります。 つまり、テリトリー内に存在することなく、テリトリー内のタイルのいずれかに触れるすべてのタイルのリストが必要です。これを見つける効率的な方法は何ですか? 難易度を上げるために、タイルがヘックスであることが起こりますが、これはそれほど大きな違いをもたらさないと思われます。各タイルにはまだ整数のxおよびy座標がラベル付けされており、タイルがあれば、隣接するタイルを簡単に見つけることができます。以下にいくつかの例を示します。黒は領土、青は探したい境界線です。 これ自体は難しい問題ではありません。擬似Pythonのこのための簡単なアルゴリズムの1つは次のとおりです。 def find_border_of_territory(territory): border = [] for tile in territory: for neighbor in tile.neighbors(): if neighbor not in territory and neighbor not in border: border.add(neighbor) しかし、これは遅いので、もっと良いものが欲しいです。テリトリーでO(n)ループがあり、すべてのネイバーで別のループ(短いループですが、それでも)があります。次に、サイズがnである2つのリストのメンバーシップをチェックする必要があります。それはO(n ^ 2)のひどいスケーリングを与えます。ボーダーとテリトリーのリストの代わりにセットを使用して、メンバーシップをすばやくチェックできるようにすることで、それをO(n)に減らすことができますが、それでも素晴らしいことではありません。テリトリーは大きいが、単純な面積対線のスケーリングのために境界が小さい多くの場合があると予想しています。たとえば、領土が半径5のヘクスの場合、サイズは91ですが、境界線のサイズは36のみです。 誰かがもっと良いものを提案できますか? 編集: 以下の質問のいくつかに答えるため。領域のサイズは、約20〜100程度です。テリトリーを形成するタイルのセットはオブジェクトの属性であり、すべてのボーダータイルのセットを必要とするのはこのオブジェクトです。 最初、テリトリーはブロックとして作成され、その後、ほとんどの場合タイルが1つずつ増えます。この場合、最速の方法は、境界線のセットを保持し、取得したタイル上でのみ更新することです。領土に大きな変更が発生する場合があります-そのため、完全に再計算する必要があります。 私は、単純な境界検出アルゴリズムを実行することが最善の解決策であると考えています。これにより発生する唯一の追加の複雑性は、境界線が必要になるたびに再計算されるようにすることですが、それ以上ではありません。私は現在のフレームワークでこれを確実に行うことができると確信しています。 タイミングに関しては、現在のコードには、領土のすべてのタイルをチェックする必要があるいくつかのルーチンがあります。毎ターンではありませんが、作成時とその後は時々です。完全なプログラムのごく一部であるにもかかわらず、テストコードの私のスーツの実行時間の50%以上がかかります。したがって、繰り返しを最小限に抑えることに熱心でした。ただし、テストコードには、プログラムの通常の実行(当然)よりも多くのオブジェクトの作成が含まれるので、これはあまり重要ではないことがわかります。

3
六角形グリッドに範囲を表示
これが状況です。 六角形のボードとその上にユニットがあり、速度または移動値があります。4。異なる地形には異なるコストがあります。ユニットをクリックすると、ゲームに移動範囲が表示されます。 私の解決策は、4の範囲内の各ヘクスをA *パスファインディングでチェックすることでした。パスコストが4未満の場合、このヘックスは範囲内にありました。最後に、ゲームでそのユニットの範囲をうまく表示しました。 私の質問は、私が自分のソリューションでやったことを本当に誇りに思っているので、六角グリッドまたは正方形グリッドで範囲を検索する他のソリューションはありますか?私は思う、それは少し誇張されていますか?:)) ユニットスピードが4または6または8の場合、コンピューターのコンピューティング範囲までの時間は本当に良いことに気づきましたが、スピードが10以上の場合、計算に数秒待つ必要があることに気付きました実際のゲームでは、私はこのようなものを見ることはなく、私のA *パスファインディングはかなり最適化されているので、私の解決策は間違っていると思います。 返信ありがとうございます。

3
16進グリッドの保管
Unity3D用の小さな六角グリッドフレームワークを作成していて、次のジレンマに直面しています。これは私の座標系です(ここから取得): 保存方法がわからないという事実を除けば、すべてうまくいきます。私は当初、これを2D配列に格納し、画像を使用してマップを生成することを意図していました。 1つの問題は、負の値があったことです(これは、座標を少しオフセットすることで簡単に修正されました)。 ただし、この座標系により、そのような画像やビットマップは菱形にする必要があります。これらの構造は四角形であるため、何かをハッキングしても、多くの頭痛の種を引き起こします。これを修正できる欠けているものはありますか?ユニティフォーラムでこれに関するフォーラムの投稿を見たのを覚えていますが、リンクが見つかりません。 座標変換器のセットを書くことがここでの最良の解決策ですか? 皆さんがそれが役立つと思うなら、私の問題のコードと画像を投稿できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.