2010-12-06 9 views
2

私は2dスプライトゲームのための '公平な'衝突検出システムを作成しようとしていますが、私は最初に予想していたよりも困難です。 「公平」とは、1つのゲーム更新で、移動可能なオブジェクトに別のものよりも移動優先順位が与えられないことを意味します。公正な2dゲームの動きの衝突の調停

A - ちょうど最初に移動し、Bのを取り消すかもしれない貪欲法とは対照的に>は50px < -B-(Bと同じ速度を有する場合、それらは各々が衝突すると停止する前25pix移動すべき)

Aは既にそこにあるからです。

2つのケースは非常に扱いやすいですが、複数のオブジェクトが衝突したときに問題に遭遇しています。

(例:速度のみ)。 A、B、およびCのオブジェクトはすべて、異なるサイズ基本的に

することができ

 B 
    | 
    |<--C 
A--> v 

、私はこの問題にアプローチする方法についてのアイデアを探しています。私の現在のアプローチは複雑すぎるので、私は考えていない他のアプローチについて議論することに興味があります。

+1

Stack Overflowの新しいセクションhttp://gamedev.stackexchange.com/に質問を投稿したことがありますか? –

答えて

1

あなたが何かを動かして、衝突を確認しているなら、あなたが言うように、それは決して公平ではありません。だから、すべてをに移動して、エンティティを移動している間に、衝突があればそのようにフラグを立ててください。すべての移動が完了したら、すべての衝突を見て、それらのすべてに基づいて次に行うべきことを決めることができます(衝突しなくなるようにすべて均等に移動するなど)。