0

私は単純な OpenGl プログラムを作成して、半径で壁に衝突したときに分割され、halved2 つのボールが半径で衝突したときにマージするいくつかのボールを描画していaddingます...
機能が正常に動作していますが、問題は同じプログラムに分割とマージの両方を追加しないでください。
理由: ボールが壁に衝突して一瞬で分裂し、同時に両方のボールがまだ接触しているためact_On_Collision()、2 つのボールが再び合体します。
したがって、ボールが壊れたりマージしたりすることはありません。また、すべてのボールが同じポイントから初期化されると、それらはすべてマージされますが、画面には何も表示されません。ここから ソースコードをダウンロードしてください
。これに関するヘルプ/アイデアは大歓迎です。

4

2 に答える 2

2

分割/マージ条件にヒステリシスを追加できます。つまり、分割が発生した場合、マージ ロジックが有効になる前に、まず 2 つのボールが互いに一定の距離を移動する必要があります。

または、速度ベクトルを使用します。つまり、速度によって距離がさらに短縮されるボールのみがマージされます。分割後、それらのモーション ベクトルは互いに離れているはずです。

于 2013-08-11T21:25:33.133 に答える