5

エンジンに box2d を統合し (Debug Draw など)、いくつかの 2D 正方形/長方形などを投入できる世界を使用しています。

ユーザーが基本的に衝突検出にワールドを使用していないこの投稿を見ましたが、ユーザーはマニホールド (b2Manifold) などをどのように使用しているかについては何も説明していません。

別の投稿は、cocos2d フォーラムにあります (3 番目の返信でユーザー Lam までスクロールします)。

誰かがこれについて少し助けてくれますか?、基本的には b2World などを使用せずに衝突検出を追加したい.

どうもありがとう!

4

2 に答える 2

2

b2World を使用できない理由はありますか? 使用するからといって、パフォーマンスが大幅に制限されていない限り、物理シミュレーションを使用する必要があるわけではありません。

Cocos2d でのコリジョンのみに Box2D を使用するこの例を参照してください。プロジェクトに似たものを適用できるかもしれません: http://www.raywenderlich.com/606/how-to-use-box2d-for-just-collision-detection-with-cocos2d-iphone

于 2010-09-08T15:55:19.983 に答える
2

これらの投稿の両方のコードは、私には完全に見えます。2 つのポリゴン形状とそれに対応する変換から始め、b2CollidePolygons から接触多様体を取得します。

b2Manifold は、2 つの形状の境界が交差するポイントの集まりです。投稿されたコードでは、作成者は、多様体のポイント数がゼロより大きい場合に重複があることを使用しています。形状の性質に応じて、それらが重なり合うときの交点の数が異なる場合があります。

b2World の衝突処理は非常に堅牢であることに注意してください。単純なコリジョン クエリを超えて、ブロード フェーズ カリング、レイキャスティング、空間ツリー、接触開始イベントと接触終了イベント、効率的なメモリ管理などの機能があります。API にはこれらのタスクのほとんどに対応するクラスがありますが、それらを手動で使用することに慣れているとは言えません。一見の価値があるかもしれません。

于 2010-07-01T06:38:35.720 に答える