2016-11-21 5 views
2

私の世界では複数のチューブを持つボールにボールを入れる必要があります。私はチューブのツアーを完了するために移動して回転させる複数のボックス形状を作成してチューブを作成しました。ここまでは順調ですね。1つの速度に応じたボディ間の衝突問題

私は今、これらのチューブとボール(単一の球体に基づくボディ)との衝突に苦しんでいます。ボールに適用される速度に応じて、ボールが体のないようにチューブを通過することもあります。小さいベロシティ値を適用すると、衝突は期待通りに機能します。

私は、ソルバーの反復回数を増やしたり、ワールドのステップを変えたり、contactMaterialのさまざまなオプションを変更したりするなど、多くの修正を試みましたが、何も動作しないようです。私はCannon.jsや物理エンジン全般についてかなり新しいので、私の世界やそれに類するものの特別な設定が欠落しているのだろうかと思っています。

私は速度の影響のthree_fps例に基づいて衝突を表示するために2つの迅速なGIFファイルを作成:

何か助けてください!ありがとう:)

答えて

0

私はそれがどのように衝突を計算するかにかかっていると思います。私は少し前に小さなゲームを作りました。同じ問題がありました。基本的に解決策は、オブジェクトの深さに移動オブジェクトの現在の位置の違いを追加することでした(したがって、オブジェクトは静止しているとみなし、他のオブジェクトは移動すると見なします)。

これは、非常に薄いオブジェクトとの衝突を修正し、高速スプライトでは、スプライトが高速(大きい位置デルタ)の場合は薄いオブジェクトが厚いとみなされ、遅い場合は薄くなります。

ここにコードをチェックアウトしたい場合、説明するのは難しいかもしれません。 https://github.com/Mc128k/SquaredBobble

1

トンネル問題の詳細については、hereを参照してください。

  • は、管壁が厚く、または
  • キープする小さな時間ステップ、
  • を使用:Cannon.jsはが連続衝突検出(CCD)を有していないので、可能な修正があることに注意してくださいshootVelo小さい。
関連する問題