0
b2bodyが別のレイヤの別のb2bodyと衝突したかどうかを確認できますか?また、どうすればいいのですか?ボディが衝突しているかどうかを判断する - Cocos2d/Box2D
E.G.
私はレベル1のレイヤーで爆弾を発射した私のゲームシーンのレイヤーにボールを持っています。彼らは衝突し、爆弾は消える。
私は
おかげで、より明確にする必要がある場合は私に知らせてください!
b2bodyが別のレイヤの別のb2bodyと衝突したかどうかを確認できますか?また、どうすればいいのですか?ボディが衝突しているかどうかを判断する - Cocos2d/Box2D
E.G.
私はレベル1のレイヤーで爆弾を発射した私のゲームシーンのレイヤーにボールを持っています。彼らは衝突し、爆弾は消える。
私は
おかげで、より明確にする必要がある場合は私に知らせてください!
ボディを衝突させたい場合は、同じb2Worldに属している必要があります。どの層に描かれているのか、どのように物理学に関係しないのか。衝突がサブクラスb2ContactListener
を発生したときに決定し、コールバック関数を実装するには:
class MyContactListener : public b2ContactListener
{
public:
MyContactListener() : b2ContactListener() {}
void BeginContact (b2Contact *contact);
void EndContact (b2Contact *contact);
void PreSolve (b2Contact *contact, const b2Manifold *oldManifold);
void PostSolve (b2Contact *contact, const b2ContactImpulse *impulse);
};
、あなたのb2Worldに、このクラスのオブジェクトを追加します。
MyContactListener *listener = new MyContactListener();
world->SetContactListener(listener);
私は衝突検出を設定しています。私は世界的にb2Worldを宣言すべきですか?ボールは自分のクラスであるゲームシーンレイヤーに描画され、爆弾はそれ自身のクラスであるレベル1レイヤーに描画されます。 – Jonathan
@ジョン:私はあなたがメインのシーンや他のすべてのレイヤーを含むレイヤーを持っていると思います。 b2Worldポインタを保存して、作成したすべての子レイヤにポインタを渡すことができます – Andrew
子レイヤを作成するにはどうすればよいですか? – Jonathan