2011-03-11 13 views
1

私は物理学が非常に単純なゲームに取り組んでいます。ボール(ポイント)が壁に当たったとき(ラインセグメント)を検出するだけです。重力も摩擦もなく、衝突は完全に弾力的です。シンプルな衝突検出のためのChipmunkの過剰使用ですか?

私は既に衝突検出コードを書いていますが、私はプロジェクトに大きな変更を加えようとしています。そのため、Chipmunk物理ライブラリで置き換える機会があります。これは良いアイデアですか?

一方で、Chipmunkは自分のコードよりも大幅にテストされ、最適化されます。私はそれを維持する作業をする必要はありません。

私が使っていない多くの機能をサポートするように設計されているため、おそらくChipmunkは私の場合は性能が劣るかもしれません。

私はChipmunkにもっと精通している人なら、プロファイリングやコードを読んでこの決断をするのを忘れてしまいます。

+0

は超簡単なので、それはあなたが必要とするすべてだならば、あなたにもちょうどそれを自分でコーディングするかもしれない - それは次のようになります新しいAPIを学ぶよりはるかに簡単です。 –

答えて

3

チップムンクの唯一の利点は、空間インデックスを使って互いに近くにあるオブジェクトの衝突をチェックするので、ボール(または多くのボール)を多くの壁に衝突させる場合です。つまり、クロールを遅らせることなく数百または数千のオブジェクトにスケールアップできますが、シーン内に12個のオブジェクトしかない場合は、実際の利点はありません。

これまでの実装では、これまでのところうまく動作しているようです。 "それが壊れていない場合はそれを修正しないでください"ここで親指の良いルールです。一方、Chipmunkで同じことを実装するのは本当に簡単でしょう。あなたが依存性の面倒を見返って、経験とスケーラビリティの可能性を望むなら、私はそう思っています。

  • スコット(シマリス物理学の男)ポイントとラインの間の距離を計算する
+1

空間ハッシュ?私は売っている!あなたが正しいのは壊れていない、修正していないのですが、私の腸は、私が今に切り替えることができないならば、おそらく後でそれをやることになるでしょう。ありがとう! – benzado

0

本当にあなたがしたいことになります。私はchipmunk自体を使用していませんが、実際には完全な物理ライブラリを必要としていないと言えるでしょう。

のようにボールと壁を超えて拡大する計画がある場合は、は拡張物理学に使用します。今すぐ簡単な問題でこれを学ぶのは良い考えです。総合的には、物理​​学の図書館を学びたい場合や、物理計算の複雑さ/種類の数を増やすことを計画している場合を除いて、私は自分でやっています。

1

私はChipmunkを使用するのがはるかに簡単であることを発見しました.2Dプロジェクトを開始する人には、これをお勧めします。私はあなたのコードを知らずにパフォーマンスの質問に答えることはできません。私はそれが衝突判定のために空間ハッシュを使用することを知っている、あなたのコードより少ない衝突テストを行うことに終わることがあります。 (一方、ボールと壁の数が非常に少ない場合、これは問題ではないかもしれません)。

これはオープンソースなので、Chipmunkを使用することもできますが、重力、摩擦、慣性モーメントなど、必要のないすべての機能を削除することもできます。これは良いオプションだとは言い難いあなたが既に実装したものを正確に知らなくても。