1

私はしばらくの間インディーゲームプロジェクトを計画してきました。質問にすぐに答えられるように、要約します。

これは、VisualStudioを介して最新バージョンのXNAを完全に使用して行われます。360とPCに搭載したいと考えていますが、この段階ではPC指向のソリューションを探しているだけです。

これは2D横スクロールシューティングゲームです(メトロイドヴァニアスタイル、さらにはテラリアを考えてみてください)。最終的には、タイルベース(16x16)のマップを備えたゲーム内マップエディターが含まれる予定です。上向きと下向きのスクロールがあります。開発マップエディターでタイルレイヤーを実装したいと思っています(開発マップエディターの理由は、コンテンツフォーカスに大きく傾くため、多くのマップが存在するためです)。

物理的なタイルは非常にシンプルで、2つの主要なタイプのみがあります。ただの無地のタイルであるブロックタイルと、キャラクターが歩くことができる傾斜のあるタイルである角度のあるタイル。角度の付いたタイルを完全に放棄することを強く検討していますが、まだわかりません。

キャラクター/NPCの動きはシンプルになります。左右に移動、ジャンプ、落下、飛行(適切なアイテム/状況で)、テレポート。すべて非常に静的で、動的な物理学は必要ありません。基本重力のみ。キャラクターがタイルの端から離れると、落下します。それがジャンプしてタイルがその上にあるとき、それは短く止まり、倒れます。突き出たタイル/壁に到達すると、飛び越えたり飛んだりしない限り、それ以上移動することはできません。すべての基本的なもの。

発射体も重力の影響を受ける可能性があり、飛行中に発射体を操作できる状況が発生する可能性がありますが、重い物理学を必要とするものはありません。一部の発射物はキャラクターも動かします(単純な「押す」メカニズムを考えてください)。

それで、ここに質問があります:私は動きと衝突検出に取り組み始めている段階にありますが、私はそれらについて行く道に自分自身を設定することができません。キャラクター、タイル、発射物がいつ衝突するかを判断する方法が必要です。私が目指しているスタイルと使用しているタイルベースのシステムについて私が言ったことを考えると、他の人が同様の状況で使用したいくつかの実証済みの真の衝突検出方法へのいくつかの推奨事項とリンクを取得できますか?私が何よりも必要としているのはインスピレーションです。

簡単に言うと、私はプログラマーとして数年の経験があるので、まったくの初心者ではありません:)

4

2 に答える 2

2

私はある時点でGISプロジェクトに取り組んでいましたが、QuadTreesで解決したのと同様の問題がありました。すばらしい説明と例については、このリンクを参照してください。

于 2012-05-27T07:59:15.060 に答える
0

あなたが言うようにそれがタイルベースのマップである場合、タイルは2D配列に格納されます。そのため、マップ配列内のx、y座標によってタイルにすばやくアクセスできます。

四分木よりも私がお勧めするのは、エンティティのすぐ近くのタイルのみをチェックすることです。

たとえば、右(+ x方向)に移動していて、上下に移動していないプレーヤーエンティティがあります。衝突できるタイルの数は、数少ないタイルのうちの1つにすぎません。具体的には、すぐ右側のタイルです。十分に速く動いている場合は、おそらくもっと右側にあります。

隣接するタイルのみをチェックする上記のソリューションは、この問題に対する非常に一般的なアプローチであり、多くのユースケースに適合させることができます。これは、上記のクアッドツリールックアップよりも高速で簡単です。

于 2017-01-05T06:29:16.840 に答える