0

私はいくつかの物理学を使ったゲームにCocos2DとBox2Dを使用しています。私の「ボール/弾丸/駆逐艦」オブジェクトが2つの「ターゲット」オブジェクトの間に詰まり、その解決に永遠にかかるという問題が時折発生します。

弾丸とターゲットオブジェクト間の衝突はターゲットを破壊するはずなので、これはばかげています。(通常、もちろん、これは正常に機能します。)

この質問のように眠りにつくことはありません。2つのオブジェクトの間の小さな小さなスペースで狂ったように振動しているからです。

Box2Dの「弾丸」オブジェクトとして弾丸を持っています。

衝突としてカウントするために、オブジェクトが前のフレームになければならない最小距離はありますか?

4

1 に答える 1

0

秘訣は、連絡先の特定の「クラスター」に対して、Box2D連絡先リスナーが(この順序で)呼び出すことでした。

BeginContact()
PreSolve() // As many times as necessary
PostSolve() // As many times as necessary
EndContact()

デフォルトでは、連絡先を取得するだけでした。EndContact()つまり、効果が評価される前に、一連の高速衝突がすべて発生していました。destroyタイプコードをに移動しましたPostSolve()が、すべて順調でした。

于 2012-05-24T18:44:30.430 に答える