問題タブ [hexagonal-tiles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2301 参照

android - 六角形にテクスチャをマッピングする

テクスチャを六角形にマッピングしようとしていますが、テクスチャの座標がわかりません。

六角形の「底」は垂直です。(主に、いまいましい XD を回転させる方法を理解することができなかったからです) 問題は、テクスチャ座標を把握する方法がわかりません。私はウェブ全体を見てきましたが、それでも成功しませんでした。

単純な正方形をテクスチャリングすることを除けば、私はそれを理解できないので、誰かがテクスチャ座標を理解する方法を説明してくれたら本当にありがたいです。

注: これは「正方形」の六角形なので、円に基づいていません。編集: 六角形は LG_TRIANGLE_STRIP を使用して描画されます。

問題が解決しました。これらの座標を把握する方法がわかりました。これが私のために働いたものです:

0 投票する
1 に答える
1089 参照

grid - ヘクスグリッドの頂点位置を2D配列に格納する方法は?

私はこの問題に直面しています。ヘクスグリッドを作成し、次の方法で作成できるようにしたいと思います。

hexgridを作成するために私が見つけたすべての方法では、最初にhexオブジェクトを作成し、次にそれをグリッド上に複製して、エッジを結合する重複した頂点位置を作成します。頂点の位置が重複しないようにしたい。そのようなグリッドを作成するためのステートメントをどのように宣言できますか?

ありがとう

0 投票する
2 に答える
7866 参照

python - 六角形のグリッド上で隣接する隣人を見つける

編集:フォーマットが正しくなるように、サンプルマップをコードブロックにラップしました。

わかりました。六角形のグリッド上に非常に単純なA*アルゴリズムを書き込もうとしています。私は理解しており、A*部分を行うことができます。実際、私のA*は正方形のグリッドで機能します。頭を悩ませることができないのは、六角形の隣人を見つけることです。六角形グリッドのレイアウトは次のとおりです

などなど

ですから、私が助けを必要としているのは、六角形のクラスを作成することです。このクラスは、16進座標であるため、ネイバーのリストを生成できます。A *が並べて配置された複数のマップを追跡する方法であるため、グリッドから「落ちる」ネイバー(20x20グリッドの0000または2101など)を生成できる必要があります。したがって、このコードスニペットで機能するものは次のとおりです。

planet = Hex( '0214')print(planet.neighbors())['Hex 0213'、'Hex 0215'、'Hex 0115'、'Hex 0315'、'Hex 0116'、'Hex 0316']

0 投票する
3 に答える
16436 参照

java - 六角形のグリッドを描画/管理する方法は?

私はこの記事を読みました:Cで六角形グリッドを生成/作成します。しかし、作者と回答者の両方がすでにそれを放棄しているように見えます。

√(hexagonSide - hexagonWidth * hexagonWidth):hexagonSideとhexagonWidthとは何ですか?<0になりませんか(平方根を計算できません)。

そして、六角形を長方形に入れることはできますか?次のようなグリッドを作成する必要があります。

出典:ウィキペディア

もう1つ、データを格納するために配列を配置し、1つのセルの隣にあるセルを取得するにはどうすればよいですか?

六角形について教えられたことがないので、何も知りませんが、簡単に新しいことを学ぶことができるので、説明や手がかりがあれば自分でやってもいいです。

0 投票する
9 に答える
26827 参照

algorithm - Hexagonal Grids、ポイントがどの六角形にあるかをどのように見つけますか?

六角形の行と列で構成されたマップがあります

これは私が使用している 16 進マップの実際の画像ではありませんが、同じサイズと形状の六角形を使用しています

ユーザーがクリックしたときに、マウスがどちらの上にあるかを判断できるようにする必要があります。

各 Hexagon は「Tile」クラスのインスタンスによって表されますが、これは場所固有のデータやポリゴンさえも保持しないため、基本的に特定の六角形がどこにあるかを知る唯一の方法は、その位置を知ることです。 2D 配列。

以前に正方形のグリッドを使用したことがあり、ピクセルも正方形であるため、どの正方形が選択されているかを比較的簡単に把握できました。

しかし、Hexagons をどこから始めればよいかさえわかりません。経験のある人はいますか?

ポリゴン (Java) は使用できません。画面上でマップを移動し、サイズを大きくすると、フレームごとに膨大な量のポリゴンを更新する際に問題が発生するためです。ただし、ポイントがマップのタイルのポリゴンに含まれているかどうかを確認することはできます!

現時点では、表示されている六角形は単なる BufferedImages です。

さらに詳しい情報を知りたい場合は、お問い合わせください。お時間をいただきありがとうございます:D

0 投票する
2 に答える
129 参照

php - ヘクスマップを歩くときに2つの有効なパスを認識して処理する

六角形マップで使用するコスト パス スクリプトを作成しています。現在、私は開発の「歩き方を学ぶ」段階にあります。

一般的に、コードは機能します。A から B に確実に移動できます。ただし、次のマップを検討してください。

ここに画像の説明を入力

シーケンス0406 -> 0405 -> 0505との両方0406 -> 0506 -> 0505が有効です。両方のパスをトラバースして出力したいと思います。

私のコードは次のとおりです。

step => hexCoord私の望む結果は、取られたパスを示す数値配列です。しかし、上記の作業コードをインテリジェントに分岐する方法を採用する方法がわかりません。それを行った後、出力データ構造を形成する最善の方法は...

前もって感謝します。

0 投票する
1 に答える
495 参照

image-processing - 不規則な領域の最適な六角形のタイリング

不規則な領域または領域のグループへの正六角形グリッドの適切な適合を計算するためのアプリケーションまたはライブラリの推奨事項を探しています。

最小限、画像と最大数の六角形を提供し、六角形のグリッドを回転/シフト/スケーリングして各六角形を1つの色で最小限のエラーで塗りつぶす画像を取得できるようにしたいと考えています。高度な機能として、基になる画像の変形を (指定された制限内で) 実行して、より適切に適合させることができます。これを自分で行う方法についていくつかのアイデアがありますが、解決された問題のようです。

提案をありがとう。

編集:私が考えているユースケースは、ボード(または仮想ボード)ゲームで使用するために、実際の地理のかなり忠実な16進マップを生成することです。

0 投票する
1 に答える
1374 参照

c# - hex grid A *pathfinding...タイプ引数エラー

私は新進のプログラミング愛好家であり、学位を取得するために勉強しているゲームデザイナーであるため、プログラミングの世界ではまだまったく新しいです。私はかなりの量のJavaScript(実際にはUnityScript)を実行し、現在C#に手を出そうとしています。私は、UnityでターンベースのRPGを作成する、hakimioのチュートリアルに従っています。これは、A*パスファインディングを使用した六角形のグリッドに基づいています。(http://tbswithunity3d.wordpress.com/)

私の質問は、A *パスファインディングスクリプトとアセットを完成させるまで、彼のチュートリアルを段階的に実行したが、Unityでエラーが発生したことです。

「エラーCS0308:非ジェネリック型の`IHasNeighbours'は型引数と一緒に使用できません」

これは、次の行でエラーメッセージを表示するコードですpublic class Tile: GridObject, IHasNeighbours<Tile>

このエラーを回避する方法についてのヘルプや洞察をいただければ幸いです。このスクリプトを機能させるために過去数日間苦労してきましたが、チュートリアル(および私のプロジェクト)を続行することはできません。エラー。

みなさん、よろしくお願いします!

アーロン :)

0 投票する
2 に答える
1946 参照

c# - 六角グリッドでの動きの最適化

ターンベースのヘックスグリッドゲームを作っています。プレイヤーはユニットを選択し、ヘクス グリッド上を移動します。グリッド内の各タイルは特定の地形タイプ (例: 砂漠、丘、山など) であり、各ユニット タイプは、地形上を移動する際に異なる能力を持っています (例: 山を簡単に移動できるものもあれば、移動が難しいものもあれば、移動が難しいものもあります)。全くない)。

各ユニットには移動値があり、各タイルはその地形タイプとユニット タイプに基づいて一定量の移動を行います。たとえば、戦車は砂漠を移動するのに 1、沼地を移動するのに 4 のコストがかかり、山を越えて移動することはできません。飛行ユニットは、1 のコストですべての上を移動します。

私が抱えている問題は、ユニットが選択されたときに、ユニットがどこに移動できるかを示す周囲の領域を強調表示したいということです。その情報に基づいてタイルを作成します。

これを再帰関数で動作させたところ、計算に時間がかかりすぎることがわかりました。関数をスレッドに移動して、ゲームをブロックしないようにしましたが、スレッドが可動領域を計算するのに約 2 秒かかります。 100 万回以上の再帰があり、明らかに問題があります。

この問題を最適化する方法について、誰かが賢いアイデアを持っているかどうか疑問に思っています。

これが私が現在使用している再帰関数です(そのC#btw):

再帰の終わりに、m_lPassableTiles には、ユニットが到達できる可能性のあるすべてのタイルのインデックスのリストが含まれており、それらは光ります。

これはすべて機能しますが、時間がかかりすぎます。これに対するより良いアプローチを知っている人はいますか?

0 投票する
1 に答える
637 参照

iphone - Cocos2d. 六角形マップの例

cocos2d で六角形マップを使用するコードの具体例はありますか? もちろん、手動で描画することを除いて。タイル マップ エディター (Java バージョン) でこれらのマップを作成できることがわかりました。しかし、そのようなマップをどのように扱うのでしょうか? 六角形のセルに描画するための画像を準備する方法もわかりません