Cocos2dベースのプロジェクトでは、衝突検出にのみ物理ツールキットを使用したいと思います。 ChipmunkやBox2dを使用する際の賛否両論は何ですか?衝突検出のみの場合、ChipmunkまたはBox2dはより良いツールですか?
答えて
どのような種類の衝突がありますか?
あなたが必要とするすべては、これらのある場合:
- RECTは矩形と交差する - > CGRectIntersectsRect(..)RECTで
- ポイント - 2の> CGRectContainsPoint(..)
- 半径が交差する(すなわち距離ポイント) - > ccpDistance(..)
物理エンジンはまったく必要なく、独自の衝突検出アルゴリズムを書く必要もありません。
ChipmunkとBox2Dは衝突を同等に処理します。私は、「どちらが良いか」と尋ねると、それはあなたにとって重要ではないという意見です。代わりに、C(Chipmunk)またはC++(Box2D)での作業がより快適かどうかを自問してください。
同様に、object-oriented, verbose API(Box2D)またはfunctional, highly abbreviated API(Chipmunk)で作業したいですか?
物理的なエンジンが他のものより優れているかどうかを、恣意的で、未定義で、非常に主観的な考え方ではなく、簡単に扱えるようにすることを決定しました。自分のゲームデザインと物理エンジンの内部アルゴリズムが本当によく分かっていれば、ゲームのデザインへの影響を評価することができます。
私は最近ゲームでこれをやったので、まったくお勧めしません。 Cocos2DはGame Centerログイン通知やiOS 5システム通知などのオーバーレイビューに深刻な問題を抱えています。これは、アップデートメソッドがいくつかのフレームをスキップし、結果的にAndyが解答で説明したような「トンネリング」効果が生じることがあります。ゆっくりと大きなオブジェクトを動かさない限り、適切な衝突検出を備えた物理エンジンを使用する必要があります。 Cocos2Dの場合、おそらくBox2Dを使うのが一番良いでしょう。 –
this answerによると、ChipmunkはContinuous Collision Detectionをサポートしていませんが、Box2Dはサポートしていません。 、あなたは非常に高速な物理オブジェクトを移動しているしようとしている場合例:これは、これは彼のBox2D vs Chipmunk FAQのステファンItterheimさんのコメントで明らかになった「トンネリング」(高速で移動するときにオブジェクトがお互いを通じて少し渡し)
を防止することが重要です「Bullets」では、Box2Dを掃除する際に、連続した衝突の統合を行うことができます。これは、急速に移動するオブジェクトが深く浸透したり、他のオブジェクトをトンネリングしたりすることを防ぎます。
Chipmunk Collision Detection docsはseparate()
コールバックについて語ります。 2つの図形が初めてこのステップに触れてしまった。しかし、これがスピードで衝突を検出する能力を持っているかどうかは私には不明でした。
ブレークアウトゲームのBOX2Dが私のゲームに悪化している2つの深刻な問題を、持っている主な理由は... 私の現在のゲームはBOX2Dを使用している、と私はそれでシマリスを使用したいvery negative opinionはBOX2Dを使用してもあります。まず、オブジェクトがコーナーでオブジェクトに「かかっている」、ゲームはブレークアウト・ゲームなので、ボールが壁に沿って転がっているときに、時にはそれがひっくり返って壁から離れてしまう、本当に古いバグがあります。なぜ私のゲーム物理は「ランダム」に見えるのですか?
結論:私も混乱しています。
- 1. chipmunk-spaceManager衝突検出
- 2. Box2Dの衝突検出?
- 3. Box2d(cocos2d)の衝突検出
- 4. Libdgx Box2D - 衝突の検出
- 5. Box2D衝突検出エラー
- 6. どのように衝突を検出するが、box2dで衝突しない?
- 7. Chipmunkは連続衝突検出をまだサポートしていますか?
- 8. シンプルな衝突検出のためのChipmunkの過剰使用ですか?
- 9. n体衝突検出とペアワイズ衝突検出の違いは?
- 10. BOX2D衝突グループ
- 11. オブジェクトとオブジェクトがArrayListから衝突した場合の検出
- 12. Java処理3(2D)の衝突検出のためのより良いアルゴリズム?
- 13. Box2dを使用した衝突検出(Android用)?
- 14. はjavascriptの衝突検出
- 15. cocos2d-xの衝突検出にbox2dを使用する方法
- 16. Box2Dの衝突のエラー
- 17. Box2d衝突の問題
- 18. AndEngineとbox2dの衝突フィルタ
- 19. AndEngine/Box2d/Java - 静的ボディと動的ボディの衝突検出
- 20. 別の衝突検出を中断する衝突検出 - Swift
- 21. 同時衝突によるBox2D衝突フィルタリング
- 22. Crowdビデオリアルタイムオブジェクト認識と衝突検出ライブラリまたはツールの推奨
- 23. Box2dの衝突のためのオブジェクトタイプの場合の変更可能なボディタイプ?
- 24. Androidでの衝突検出
- 25. Libgdx | Box2D |ボディが別のボディに衝突した場合にポーリングする
- 26. RaycastソースがColliderの中にある場合の衝突検出
- 27. cocos2dとchipmunkは衝突後にオブジェクトを回転します
- 28. 衝突検出を行う最も良い方法は何ですか?
- 29. libGDX/Box2Dで攻撃の衝突を行う最良の方法は?
- 30. 衝突検出を行う場所
物理学を扱いたくない場合は、ライブラリ全体を組み込むのはなぜですか? – alex
私は物理学は必要ありませんが、私は衝突検出システムを使いやすくしたいので、自分で書く必要はありません。ツールキットを含めることはそれほど大きな問題ではないはずです。 –
かなり主観的な質問ですが、「より良い」ものはあなたが最も速く学び、最もよく理解できるものです。 –