【已解决】碰撞过滤问题

按照文档中所述

修改了两个armature的groupIdx,但是还是发生了碰撞

请问碰撞过滤是否好使?

那具体要怎么实现呢?

b2Filter f1;
        f1.groupIndex = 1;
        cocos2d::extension::CCColliderDetector *detector = armature->getBone("Layer142")->getDisplayManager()->
                getCurrentDecorativeDisplay()->getColliderDetector();
        detector->setColliderFilter(f1);

这样编写代码是否正确?

— Begin quote from ____

%url%天啊 发表于 2013-7-29 10:30
是groupIndex的设置有问题,还是先看BOX2D的过滤规则吧。

— End quote

不能像这样直接赋值吗?

f1.groupIndex = 1;

我两个碰撞区域设置的groupIndex不一样,一个1,一个5
按理来说就不会发生碰撞了啊,我看Box2d是这个意思啊,难道我理解错了?

是groupIndex的设置有问题,还是先看BOX2D的过滤规则吧。

— Begin quote from ____

%url%qin3956 发表于 2013-7-29 10:58
不能像这样直接赋值吗?我两个碰撞区域设置的groupIndex不一样,一个1,一个5
按理来说就不会发生碰撞了 …

— End quote

是的,你理解错了。

— Begin quote from ____

%url%qin3956 发表于 2013-7-29 10:58
不能像这样直接赋值吗?我两个碰撞区域设置的groupIndex不一样,一个1,一个5
按理来说就不会发生碰撞了 …

— End quote

groupIndex A B:
A:-1 B:-1 不撞
A:-1 B:-2 撞
A>0 , B>0 撞
A=0 B=0 按照 cas 跟 mas 来匹配

— Begin quote from ____

%url%天啊 发表于 2013-7-29 13:52
groupIndex A B:
A:-1 B:-1 不撞
A:-1 B:-2 撞

— End quote

谢谢回复!

看来是我基础太差了!!

刚刚做了实验,的确如此,碰撞过滤好使!