简体   繁体   English

如何使b2Body忽略另一个b2Body?

[英]How to make an b2Body ignore another b2Body?

I have three b2Body-s. 我有三个b2Body-s。 Head, chin and one static type b2Body. 头,下巴和一个静态b2Body。 I add a b2Joint from static b2Body to head and another b2Joint for head and chin. 我将b2Joint从静态b2Body添加到头部,并将另一个b2Joint添加到头部和下巴。 Head ignore static body because collideConnected is false for joint, but chin is not ignore it. 头部忽略静态物体,因为collideConnected对于关节为假,但下巴不忽略它。 How to make this ? 如何做到这一点? Please suggestions. 请建议。

enum CATEGORY_BITS
{
    BODY1_CATEGORY_BITS = 0x00000001,
    BODY2_CATEGORY_BITS = 0x00000002,
    BODY3_CATEGORY_BITS = 0x00000004,

};

and when you create bodies ... 当您创建实体时...

    b2FixtureDef fixtureForBODY1;
    fixtureForBODY1.shape = &shapeForBODY1;
    fixtureForBODY1.filter.categoryBits = BODY1_CATEGORY_BITS;
    fixtureForBODY1.filter.maskBits = BODY1_CATEGORY_BITS | BODY3_CATEGORY_BITS;


    b2FixtureDef fixtureForBODY2;
    fixtureForBODY2.shape = &shapeForBODY2;
    fixtureForBODY2.filter.categoryBits = BODY2_CATEGORY_BITS;
    fixtureForBODY2.filter.maskBits = BODY2_CATEGORY_BITS | BODY4_CATEGORY_BITS;

    b2FixtureDef fixtureForBODY3;
    fixtureForBODY3.shape = &shapeForBODY3;
    fixtureForBODY3.filter.categoryBits = BODY3_CATEGORY_BITS;
    fixtureForBODY3.filter.maskBits = BODY3_CATEGORY_BITS | BODY1_CATEGORY_BITS;

    b2FixtureDef fixtureForBODY4;
    fixtureForBODY4.shape = &shapeForBODY4;
    fixtureForBODY4.filter.categoryBits = BODY4_CATEGORY_BITS;
    fixtureForBODY4.filter.maskBits = BODY4_CATEGORY_BITS | BODY2_CATEGORY_BITS;



// BODY1 -> not collide connected (BODY2 and BODY4)
// BODY1 -> collide connected (BODY1 and BODY3)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM