問題タブ [isometric]

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 投票する
6 に答える
128143 参照

2d - 等尺性のゲーム世界を描く

2D ゲームで等尺性タイルを描画する正しい方法は何ですか?

マップの 2D 配列表現の各列をジグザグにする方法でタイルをレンダリングすることを示唆する参考文献 (このようなもの)を読みました。画面に描画されるものが、2D 配列がどのように見えるかにより密接に関連し、少し回転するだけで、ダイヤモンドのように描画する必要があると思います。

どちらの方法にも利点または欠点はありますか?

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

math - 画面上の点を等角的に投影された世界に投影解除する

2D アイソメトリック エンジンで世界をレンダリングしながら、舞台裏で 3D シミュレーションを行っています。私は以前に等角投影エンジンをやったことがなく、私の行列計算は一般的にさびているので問題があります。

私は射影行列を持っています。最も単純な形式は次のとおりです。

私のエンジンの座標系は左上が 0,0 で、+X が右/東、+Z が南であるため、いくつかの記号が反転しています。

さて、その逆は次のとおりです。

現在、これらのマトリックスはほとんど機能しています。

例えば

WC: 500,0,500 =画面: -1.44 , 350, 500 (X と Y は正しい)

WC: 0,0,500 =画面: -355 , 175, 500 (X と Y は再び正しい)

しかし、逆の方向に進む必要がある場合、便利な Z 値はもうありません。

Screen: -1.44, 350, 0 = WC: -2, -402.97, 0 (つまり、ゴミです。)

さらに、その Z 値がなくなるとすぐに、画面座標から世界座標を取得できなくなります。

ここでの回避策は何ですか?

編集

unproject のポイントは、マウス ピッキング用のレイを取得することです。

ここで私を台無しにしていたのは、私がしていたことに対する私の誤解だけのようです。

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

2d - アイソメトリック ワールド内のタイル間でスプライトを移動する

2D スプライトをアイソメトリック ゲームの世界で移動 (およびアニメーション化) する方法についての情報を探していますが、1 つのタイルの境界からジャンプさせるのではなく、タイルからタイルへの移動としてスムーズにアニメーション化します。次の境界。

この例は、トランスポート タイクーン ゲームで、列車と車両が 1 つのタイルに半分ずつ、もう 1 つのタイルに半分ずつ配置されていることがよくあります。

0 投票する
4 に答える
22438 参照

c++ - openglによる真の等角投影

私はC++を使用したOpenGLプログラミングの初心者であり、数学はあまり得意ではありません。等角投影を行う簡単な方法はありますか?

私は、一般的な正射影ではなく、真の等角投影を意味します。

(等角投影は、ユニットX、Y、およびZベクトルの投影が等しく長く、それらの間の角度が正確に120度である場合にのみ発生します。)

コードスニペットは高く評価されています。

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

iphone - 2次元座標系での等角図法

2次元空間で等角平面上の点を移動するために必要な方程式は何ですか?

私はチューブのいくつかの場所を見てきました。主にここ。そして、私はそれを解読できませんでした。残念ながら、私は数学専攻ではありません。

私がする必要があるのは、10px ブロックで構成される等角平面上で (0,0) から (1,0) または (0,1) にポイントを移動することです。通常のビルでは、(x+10, y+0) または (x+0, y+10) を実行して、2 次元平面上で自分自身を移動します。

より良いコンテキストが得られる場合は、ほとんどの作業を iPhone の Core Animation で行います。

お時間をいただきありがとうございます。

DP

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

algorithm - 等角図の正確な A* 検索ヒューリスティック?

A* 検索アルゴリズムの実装を作成しました。問題は、私が現在使用しているヒューリスティックが正方形のグリッドでのみ正確に機能することです。私のマップは等角図であるため、ヒューリスティックは実際のマップのレイアウトを考慮していないため、セル間の距離が考慮されていません。

更新:大規模ログ記録と分析の後 (平凡さを理解しようとして多くの時間を費やしていると読んでください)、現在のヒューリスティックが非常にうまく機能するという結論に達しましたが、1 つの小さな例外があります。斜め移動。

これは、アイソメsqrt(2)マップ上で実際には斜めの移動よりも何倍もコストがかかる直線の移動が、斜めの移動として計算されることを意味します。問題は、アイソメ レイアウトで正しい結果が得られるように現在のヒューリスティックを変更するにはどうすればよいかということです。を単純に置き換えたり、その逆を行ったりするだけでは機能しませんdiagonalstraight

地図のレイアウト

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

isometric - 等角ゲームの世界座標関数の取得の逆関数を理解できません

私は等角ゲームを書いていますが、残念ながら、画面座標から世界座標に(またはその逆に)マップするために使用されるアルゴリズムで書き続けることができません。とにかく、GetScreenX/Yメソッドの逆である実装を理解することはできません。ここにいくつかのコードがあります。widthとheightは、タイルのビューポート領域の幅/高さを表します。

正しい実装で、これは問題なく実行されるはずです。Linqpadで実行できます。

質問する必要がありますが、私は私の知恵の終わりにいます!

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

vb.net - アイソメトリック エンジンでのオフスクリーン タイルのカリング

大学のターム プロジェクトでは、アイソメ ディスプレイを使用するグラフィカルなローグライク ゲームに取り組んでいます (用語の矛盾を認識しています:P)。私が理解しようとしているのは、すべてのタイルを描画するのはばかげて高価で不要であるため、どのタイルを描画して NxMpx ウィンドウ内に収まるようにするかを決定する比較的高速なアルゴリズムを見つけたいということです。グラフィックは XxYpx です。

私はこれのためにスムーズスクロールをしていないので、それは問題ではありません. また、完璧であることを心配していません。少し不必要なドローは問題ありません。ゲーム内に表示されない不要なタイルを大量にドローしたくないだけです。

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

2d - 2D サイド スクローラーに z 軸を実装する

Castle Crashers に似たサイド スクローラーを作成しており、現在は衝突検出に SAT を使用しています。それはうまくいきますが、基本的にz軸に沿ってオブジェクトを画面上で上下に移動できるようにすることで、レベルの「深さ」をシミュレートしたいと思います(このスクリーンショットhttp://favoniangamers.files.wordpress.com/2009/07のように) /castle-crashers-ps3.jpg )。これはアイソメトリック ゲームではなく、視差スクロールを使用しています。

ベクトル クラスに az コンポーネントを追加し、形状の「厚さ」と z 位置に基づいて衝突をカリングする予定です。レンダリング用の形状の位置を計算する方法や、重力によるジャンプを追加する方法がわかりません。z 位置が変化したときに (地面の) 最大 y 値を計算するにはどうすればよいですか? 基本的に、私を混乱させるのは z 軸と y 軸の関係です。

誰かがこのトピックを知っている場合は、リソースへのリンクをいただければ幸いです。

ありがとう!