衝突システムの実装


7

まともな衝突システムを実装するための良い方法が何であるかを知りたいだけです。基本エンティティクラスから継承されたクラスとして?現在私は行き詰まっているので、自分のアイデアよりも優れたアイデアをいくつか使用することができます。

どんな助けでもありがたいです!

編集:すみません、それは2D衝突ですが、正直なところ、特定の衝突方法を探していません。実装ラインについてもっと調べています。次のような衝突システムを実装する一般的な方法のいくつかに興味があるだけです。

衝突システム全体を独自のクラスにする必要がありますか?何が継承可能であるべきですか?

これらは私の質問の一部です。混乱させて申し訳ありません。


達成したいことに関する追加情報をいくつか追加してください。2Dまたは3Dの衝突検出が必要ですか?いくつのオブジェクトをチェックする必要がありますか?どの精度が必要ですか?
sum1stolemyname

回答:


5

衝突システムについて尋ねるたびに、(オンラインでの)議論は次のようになります。

  • 「ねえ、この種の衝突をどうやってやればいいの?」
  • 「このアルゴリズムを試してみてください。」
  • 「いいえ、この1つのアルゴリズムの方が優れています!」
  • 「おそらく、このアルゴリズムを使用するような、システムのよりグローバルなビューが役立つでしょう。」
  • 「リアルタイム衝突の本を入手して黙ってください。」

そのようないくつかの議論の後、私は最終的に本を購入しました:http : //realtimecollisiondetection.net/

各ケースで何をするかを決定させるのに十分な情報を提供するために、主題のすべての側面を提示します。


私を啓発してくれてありがとう。正直なところ、私はさまざまなアルゴリズムに関するリソースをたくさん見つけました。半効率的/現実的な方法で実装する方法を正確にブロックしているだけです。もう一度ありがとう。
hrr4

問題ありません。何度も何度も同じ質問を受けましたが、この本を手に入れたので、すぐに取り組むための確かなリファレンスがあります。
Klaim

3

これは設計アプローチの問題なので、単一の最適なソリューションはありません。

可能なアプローチは、衝突検出の関数を定義し、すべての衝突可能オブジェクトクラスがこのクラスを継承する衝突可能オブジェクトのスーパークラスを作成することです。

これらの関数がどのように機能するかは、衝突検出のタイプ(境界ボックス、境界円、境界ポリゴン、ピクセルごとなど)などの他のパラメーターに依存します。


Hrm、入力ありがとうございます。ええ、私が見つけたものと私が達成しようとしているもの(小惑星のクローン)から、私はサークル-サークル-> AABBタイプのシステムに決めました。しかし、再び、実装のアイデアを探していました。アイデアブロックを打って、ちょっとした助けを求めます:) ありがとう!
hrr4
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.