2016-11-20 25 views
1

私は現在、小規模な大学のプロジェクトの一環として、C++で非常に基本的な3D OpenGLゲームを開発中です。私たちは教師から多くの洞察を得ることはできませんが、わずかな時間枠だけでなく、非常に限定されたドキュメンテーションなので、今ここで少し失われています。基本的な3D OpenGLの衝突検出C++

私のゲームは、私が以下に描いたイメージとほとんど同じように見える直交平面上の戦闘です。各タンク(AとB)は異なるプレイヤーによって制御することができ、それぞれが衝突時に他のタンクのスコアに影響を与えると思われる発射体を撃つことができます。

enter image description here

私の質問は、効果的にタンクのための衝突を実装する最も簡単な方法であるもの、ありますか? (タンク対タンク、タンク対マップの境界とタンク対画像の中央にあるもののようなあらゆる種類の平行六面体のオブジェクト - 同じことがタンク砲塔から発射された発射物に適用される)。

理想的には、外部の物理エンジンを使用する必要はなく、実現が容易であれば受け入れられる。現時点では、私はGLUTライブラリのみを使用しています。

答えて

2

プロジェクトにBox2D(http://box2d.org)をダウンロードして統合します。

あなたのプロジェクトが物理エンジンを実装しているのでなければ、あなた自身で気にしないでください。ライブラリをどのように統合するか、そして物理エンジンがどのように機能するかを学ぶために、あなたの時間はずっと良くなります。

あなたのタンクには、ボックスコライダー、投射物の円、周囲の4行を簡単に使用できます。発射物が他のタンクと衝突したときに通知するコールバックを作成することができます。

タンクの移動や回転には、位置を更新するだけではなく、力とトルクを使用する必要があります。しかし、物理学を自分で実装しようとするなら、おそらくそれをやる必要があります。