タグ付けされた質問 「maps」

物理的特徴を示す地理的領域の視覚的表現。

3
マップ上の国間の接続を表すデータ構造
私がクライアントのために開発しているゲームでは、主要なゲームのコンセプトには、マップ上を移動することが含まれます。この場合、さまざまな国のサイズや形状などは関係ありません。ある国から隣接する国への移動は、1つのステップとしてカウントされます。 国間のつながりを内部的に表すための最良のデータ構造を見つけ出そうとしています。特定の国では、ゲームは隣接する国を知る必要があります。プレイヤーが移動できる方法を知るためと、ゲームのAIがルートを計画し、国から国への可能なパスを決定するためです。AIはまた、国がそのすぐ隣の隣国だけでなく、それらの国の隣国などとどのように接続されているかを評価する必要があります。 私はいくつかの可能性を見つけましたが、それらはあまりにも非効率的で非効率的です。AIは、その移動について適切な決定を行うために、可能なルートの束を計算する必要があるため、「非効率」は非常に問題があります。 これはやや一般的なCSパズルであり、共通の解決策があると思いますが、検索しても多くを見つけることができませんでした。どんな提案でも大歓迎です。

2
3Dゲームマップの保存方法と処理方法
私はプログラマーですが、まだゲームを開発していません。 私はさまざまな3Dゲームをプレイしてきましたが、フィールドのマップがどのように保存およびレンダリングされるのかを常に疑問に思っていました。 一部のアクセラレーションカードが必要なハードウェアであることは知っていますが、画面にちらつきが1つもない状態でビューがどのように変更されるかを正確に示します。 これを理解するのに役立つオンライン資料はありますか? ありがとう
9 3d  maps 

3
2Dスターマップで境界線/州のエリアを生成するための適切なアルゴリズムは何ですか?
私は、それぞれが1つ以上の星系を所有している、異なる派閥/状態を示すかなり大きな2次元の星図を生成しようとしています。派閥の境界・エリアを自動で作成したいのですが。 アイデアは基本的にこのようなものから行くことです(ドットは2d平面上の星系を表し、色は派閥の所属です) これに このようなマップを生成することはかなり一般的な要件のように思われるので、私の実際の質問はこれです:示されているように状態領域を生成するための標準的なアルゴリズムはありますか?もしそうなら、私にそれらを指摘してもらえますか?そうでない場合、良いアルゴリズムを考えることができますか? アルゴリズムのパフォーマンスは私にとって主な関心事ではないので、生成するのが高速なマップよりも「きれいな」マップを使用したいと思います。この同様の質問は、いくつかの「整形」が必要であるにもかかわらず、おそらく私の問題に適用できるアプローチを提供します: グラフからマップを作成する方法 きれいに言うときの意味を説明しましょう。リンクされた質問の下部に、質問者は受け入れられた回答を実装した後の最終結果を提示します。ここでの最初の問題:ノード#6、#9、および#12の領域は非常に小さく、奇妙な形をしています。また、シャープなエッジの代わりに、滑らかで湾曲した外観を好むでしょう。 これまでに見たそれぞれの欠点/質問を含む、これまでの自分のアイデア: 各派閥の「凸包」ポリゴンを生成し、少し外側に拡張します。問題:凹面の特徴はありません。また、オーバーラップにはどのように対処しますか? ドットのボロノイグラフを生成し、隣接する異なる派閥のシステム間のボロノイポリゴンエッジを境界として使用します。問題:マップの端にある大きなポリゴン-それらを特定して修正するにはどうすればよいですか? ドットごとに固定サイズのポリゴンを生成し、単一のファクションのすべてのポリゴンを結合します(結果として、1つの大きく潜在的に複雑な「ファクションポリゴン」が生成されます)。次に、2つの派閥間の重複領域を調整するために何かを行います。問題:これを正確に行うにはどうすればよいですか?単純なプロセスではありません。3つ以上の派閥間で重複がある場合はどうなりますか? よろしくお願いします。 補遺:最初の2つの回答と問題を解決するためのそれぞれのアプローチを検討した後、上記の要件が不完全であることに気付きました。 私は、地図にまばらに人口の多いエリアがある可能性があることを追加する必要があります。これは、孤立した星または星のクラスターがある可能性があることを意味します。それらの各クラスターを、独自の隣接する色付きの領域で表示したいと思います。このようなもの: これには、クラスターを識別する最初のステップが必要であり、次に各クラスターに対して実際のアルゴリズムを実行する必要があることを理解しています。
9 2d  algorithm  maps 

3
ランダムゼルダスタイルのマップ生成
ドアで接続された部屋のマップをランダムに生成しようとしていますが、このコードを使用してマップを生成することに成功しました。 public void generate(GameContainer gc) { rooms = new ArrayList<Room>(); startingRoom = new Room(0); startingRoom.setPosition(viewport.getCenterX(), viewport.getCenterY()); lastRoom = startingRoom; rooms.add(startingRoom); int roomsize = 25; for (int i = 0; i <= (1000 + Math.random() * 4000); i++) { Room room = new Room(i + 1); int direction = (int) (Math.random() …

4
六角形のタイル張りの2Dマップを処理するライブラリはありますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 6年前休業。 これは、任意のサイズの半正方形のマップを表します。これは、0101(最初の列、最初の16進数)など、マップ座標を表す単純なシステムになります。2つのポイント間の距離と、それらの2つのポイントの間にある他のヘクスをリストまたは配列としてマップが教えられるようにしたいと思います。 言語についてはあまり気にしませんが、C#またはPythonが理想的です。 存在しますか?

1
(比較的)線形のダンジョンパスを生成するにはどうすればよいですか?
アクションサイドスクローラーのコンセプトを開発しています。必要なのは、(比較的)まっすぐなマップを生成する方法です。これはつまり… このマップが少しずれていても、1つの単純なルートに従っていることは明らかです。これで、迷走経路(ショートカット、または秘密の通路)も実装します。そのため、おそらく、3番目の円で囲まれた領域から4番目の領域に移動するには、メインパスと、より強力な敵で満たされた、より高速でより高い報酬が得られる秘密の通路があります。 ここで行き詰まりに達しました。いくつかのオプションを調査していますが、実際には何も進歩していません。この種のパスを生成するためにどのようなアプローチを使用できますか?これまでのところ、Java、C#、およびC ++で実験してきたので、プログラミング言語に縛られることはありません。同様に、特定のゲームエンジンに対する現在の依存関係もありません。

0
OpenFLを使用したSceneManagerの実装
OpenFLとHaxeを使用して基本的なSceneManagerを実装しようとしています。OpenFLとHaxeの使用経験はあまりないので、いくつか問題があります。 以下は、SceneManagerクラスの設計方法です。 package; import openfl.display.Sprite; import openfl.Lib; class SceneManager extends Sprite { private var currentScene: ...; public function new(rootScene: ...) { super(); currentScene = rootScene; Lib.current.addChild(currentScene); } public function changeScene(newScene: ...): Void { Lib.current.removeChild(currentScene); currentScene = newScene; Lib.current.addChild(SceneTwo); } } 「...」は、どのシーンでも保持できる一般的な「クラス」タイプに置き換える必要があります。 誰かがこれを解決するのを手伝ってくれるなら、私は本当に感謝するでしょう。

2
マップエディターのレイヤーの目的は何ですか?
Tiledなどの地図編集者について質問があります。私は現在、独自のマップエディターを作成しています。たとえば、タイル張りにレイヤー化する目的は何か教えてもらえないかと思います。マップの作成にはどのような目的がありますか?
8 tiles  maps 

3
単一のタイル画像よりも大きい等角図の描画順序-描画順序アルゴリズム?
さまざまな画像を配置するアイソメマップがあります。ほとんどの画像は単一のタイルに収まりますが、一部の画像はわずかに大きくなります。たとえば、2x3タイルのサイズのベッドがあります。 これにより、一部のタイルが他のタイルと誤って重なるため、オブジェクトを画面に描画するときに問題が発生します。 私が知っている2つの解決策は、画像を1x1タイルセグメントに分割するか、たとえば各画像に番号を割り当てることによって、独自の描画順序アルゴリズムを実装することです。番号1の画像が最初に描画され、次に2、3などが描画されます。 誰か私が何をすべきかについてのアドバイスはありますか? アイソメトリック画像を分割することは非常に明白ではないように思えます。画像のどの部分が特定のタイルに含まれるかをどのように決定しますか?すべての画像を手動で分割する余裕もありません。 描画順序アルゴリズムはより良い選択のように見えますが、実装が簡単になるかどうかはわかりません。私は頭の中で、1つの画像のインデックスを変更する状況に対処する方法を解決できません。誰かがこれについてのリソース/チュートリアルを持っているなら、私は最も感謝します。

4
トップダウン2Dマップ上で画面外のオブジェクトを効率的にカリング
ゲームプログラミングでは効率が重要であることを知っています。以前に「マップ」をレンダリングした経験はありましたが、おそらく最善の方法ではありません。 2Dトップダウンゲームの場合:(世界のテクスチャ/タイルをレンダリングするだけです) たとえば、1000x1000(タイルなど)のマップがあるとします。タイルがカメラのビューにない場合、レンダリングされるべきではありません-とても簡単です。表示されないタイルをレンダリングする必要はありません。しかし、マップ内に1000x1000オブジェクトがあるか、おそらくそれより少ないため、レンダリングされるかどうかを確認するためだけにすべての1000 * 1000タイルをループ処理したくない場合があります。 質問:この効率を実装する最良の方法は何ですか?それで、「素早く/より速く」、どのタイルがレンダリングされると想定されるかを決定できますか? また、SpriteBatchでレンダリングされたタイルを中心にゲームを構築するのではないため、四角形はなく、形状はさまざまなサイズで複数のポイントを持つことができます。たとえば、10ポイントの湾曲したオブジェクトとそのシェイプ内のテクスチャです。 質問:この種のオブジェクトがカメラのビューの「内側」にあるかどうかをどのように判断しますか? 48x48の長方形で簡単です。X+ WidthまたはY + Heightがカメラのビュー内にあるかどうかを確認してください。複数のポイントで異なります。 簡単に言うと、何百万ものオブジェクトを同時に実行/ループする必要がないように、コードとデータを効率的に管理する方法です。

3
球面上のルート-測地線を見つけますか?
私は、2Dマップ上を移動できるブラウザベースのゲームで友人と作業しています。ほぼ7年になりますが、まだこのゲームをプレイしているので、何か新しいものを提供する方法を考えています。それ以来、ゲームマップは制限された平面であり、人々は(0、0)から(MAX_X、MAX_Y)に量子化されたXとYの増分で移動できます(大きなチェス盤と想像してください)。 私たちはそれを別の次元にする時が来たと信じているので、ほんの数週間前に、ゲームが他のマッピングでどのように見えるか疑問に思い始めました: 継続的な動きのある無制限の飛行機:これは一歩前進かもしれませんが、それでも私には確信がありません。 トロイダルワールド(継続的または量子化された動き):以前はトーラスを使用して作業してきましたが、今回はもっと何かを求めています... 連続的な動きのある球形の世界:これは素晴らしいことです! 我々が望むものを ユーザーのブラウザは球面マップ上の各オブジェクトの(緯度、経度)のような座標のリストを与えられています。ブラウザは、これをユーザーの画面に表示して、Web要素内にレンダリングする必要があります(キャンバスでしょうか?これは問題ではありません)。人々が飛行機をクリックすると、(mouseX、mouseY)を(lat、lng)に変換し、現在のユーザーの位置からクリックされたポイントまでのルートを計算する必要があるサーバーに送信します。 私たちは 、回転行列、四元数、オイラー角、平行移動などを操作するための多くの有用な数学を備えたJavaライブラリの作成を開始しました。それらをすべてまとめて、球点を生成し、それらをレンダリングしてユーザーに表示するプログラムを作成しましたJPanel内。クリックをキャッチして球面座標に変換し、ビューの回転、スケール、変換などの他の便利な機能を提供することができました。現在、クライアントとサーバーの相互作用をシミュレートする小さな(非常に小さな)エンジンのようになっています。クライアント側は画面上のポイントを表示し、他の相互作用をキャッチし、サーバー側はビューをレンダリングし、現在の位置とクリックされたポイントの間のルートを補間するような他の計算を行います。 問題はどこだ? 明らかに、2つのルートポイント間を補間する最短パスが必要です。クォータニオンを使用して、球の表面上の2点間を補間します。これは、球の表面上で最短経路が得られないことに気付くまで、問題なく機能するように見えました。 問題は、ルートがX軸とY軸を中心とした2つの回転の合計として計算されることでした。そこで、目的地のクォータニオンの計算方法を変更しました。方向と呼ばれる3番目の角度(1番目は緯度、2番目は経度、3番目は現在の位置を指すベクトルを中心とした回転)を取得します。これで「向き」の角度ができたので、Z軸を回転し、結果のベクトルを宛先クォータニオンの回転軸として使用します(回転軸は灰色で表示されます)。 取得したのは正しいルートです(大きな円上にあることがわかります)。ただし、これはルートの始点が緯度、経度(0、0)にある場合にのみ取得されます。つまり、開始ベクトルは(sphereRadius、0)です。 、0)。以前のバージョン(画像1)では、開始点が0、0であっても良い結果が得られないため、解決策に向かっていると思いますが、このルートを取得するために実行する手順は少し「奇妙です」 " 多分? 次の画像では、開始点が(0、0)ではない場合に発生する問題のビューが表示されます。これは、開始点が(sphereRadius、0、0)のベクトルではなく、目的点を確認できるためです。 (正しく描かれています!)はルート上にありません。 マゼンタポイント(ルート上にあるもの)は、(-startLatitude、0、-startLongitude)の球の中心を中心に回転したルートの終点です。つまり、回転行列を計算してルート上のすべてのポイントに適用すると、実際のルートが得られる可能性がありますが、これを行うにはもっと良い方法があると思い始めます。 たぶん私は球の中心とルートポイントを通る平面を取得し、それを球と交差させて測地線を取得しようとする必要がありますか?しかし、どうやって? あまりにも冗長で、多分間違った英語で申し訳ありませんが、これは私の心を吹き飛ばしています! 編集: 以下のコードは問題なく動作します!みんなに感謝: public void setRouteStart(double srcLat, double srcLng, double destLat, destLng) { //all angles are in radians u = Choords.sphericalToNormalized3D(srcLat, srcLng); v = Choords.sphericalToNormalized3D(destLat, destLng); double cos = u.dotProduct(v); …

2
2Dタイルマップのカスタム拡張ファイル形式
現在、ゲームロジックの多くを実装していますが、何かを操作できるように、オンザフライで厄介なforループを使用してマップを作成しています。次に進んで、このデータを(非)シリアル化する方法についていくつかの調査を行いたいと思いました。(私はマップエディターを検索しません-私はマップファイル自体について話しています) 現時点では、提案とリソース、次の機能を提供する(MoSCoWメソッドに基づく)マップにカスタムファイル形式を実装する方法を探しています。 持つ必要があります 拡張性と下位互換性 異なるレイヤーの処理 タイルが固体であるか通過できるかに関するメタデータ 関連するプロパティ/メタデータを持つエンティティ/トリガーの特別なシリアル化 持つことができた ファイル/タイルセットが散らばらないようにするためのタイルセットのある種の包含 C ++(SDLを使用)で開発しており、Windowsのみをターゲットにしています。役立つヘルプ、ヒント、提案などがあれば、よろしくお願いします! 以下の議論の結果 私は過去数時間にマップファイル形式を設計していて、スケルトン(今のところレイヤーのみが含まれている-残りは彼/彼女の独自の形式を設計しているすべての人に任せる)を考えた。同じ意図があり、何らかのインスピレーションを得ることができます。フルサイズのスクリーンショットはImgurからダウンロードできます。

3
2Dトップダウンビューマップ
これがどのように機能するのか疑問に思いました。 あなたはロードするか、完全なゲームの起動時にマップを、または実行時にマップの部分をロードするのですか? そして、どのように地図を保存しますか?XMLか、それともバイナリ形式ですか? ありがとう!
8 2d  tiles  sprites  maps 

2
2Dタイルマップを保存する方法
ボクセルのように見える小さなタイルで構成された2Dマップを作成したい(たとえば、これを横から見たところ)。 Voxel2Dのような、int X、Y、およびいくつかのColorを持つ構造を作成できます。すべてのVoxel2Dは5x5ピクセルになります(描画するときはXとYを5倍します)。 しかし、どうすればマップ全体を保存できますか?古典的なタイルマップのような2D配列で、またはより速い方法はありますか?
7 2d  java  maps  voxels 

6
タイルマップ構造の2D配列の代替
長い間探していたところ、この質問がまだ出されていないことに驚いています。2Dタイルマップゲームでは、マップをどのように処理しますか?私はC ++の実装にもっと興味がありますが、どの言語でもあなたの見解を示していただければ幸いです。 2D配列、2Dベクトル、座標を処理するアドホックコンピューティングでリンクリストを処理するクラス、boost :: matrix ...?どのソリューションを使用していますか。その理由は何ですか。

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