iphone - 如何让一个 b2Body 忽略另一个 b2Body?

标签 iphone ios cocos2d-iphone box2d box2d-iphone

我有三个 b2Body-s。头部、下巴和一个静态类型的 b2Body。我从静态 b2Body 添加一个 b2Joint 到头部,另一个 b2Joint 用于头部和下巴。头部忽略静态 body ,因为关节的 collideConnected 为 false,但下巴不会忽略它。怎么做这个?请提出建议。

最佳答案

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

};

当你创建 body 时......

    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)

关于iphone - 如何让一个 b2Body 忽略另一个 b2Body?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15837813/

相关文章:

iphone - 在 NSMutableDictionary 中存储变量值

iphone - NSCalendarUnit – 修改 unitFlags

ios - GKAchievementViewController全屏(或PageSheet)奇数显示

iphone - cocos2d-iphone 中的 CCMoveBy

iphone - 核心数据 NSFetchRequest 在删除对象和重新获取数据后返回未排序的数组

iphone - numberOfRowsInSection - 无法识别的选择器发送到实例问题

ios - 获取之前应用版本的应用商店信息

ios - 尝试让我的应用播放像 Snapchat Stories 一样的故事

iphone - 应用程序在i0S 6中崩溃,但在iOS 5中没有崩溃

java - 使用 STL/POSIX 将二进制文件从 J2SE 加载到 iOS iphone