cocos2dx 3.13chipmunk的碰撞过滤
3.13的chipmunk碰撞过滤比2.x的碰撞过滤有较大改变,api都不太一样了,通过查看英文文档才看明白。
cpShap下有一个属性filter主要是用来处理碰撞过滤的,filter的类型是cpShapeFilter,cpShapFileter是一个结构体。结构体的代码如下
/// Fast collision filtering type that is used to determine if two objects collide before calling collision or query callbacks.
typedef struct cpShapeFilter {
/// Two objects with the same non-zero group value do not collide.
/// This is generally used to group objects in a composite object together to disable self collisions.
cpGroup group;
/// A bitmask of user definable categories that this object belongs to.
/// The category/mask combinations of both objects in a collision must agree for a collision to occur.
cpBitmask categories;
/// A bitmask of user definable category types that this object object collides with.
/// The category/mask combinations of both objects in a collision must agree for a collision to occur.
cpBitmask mask;
} cpShapeFilter;
group和之前版本一样,如果两个shape的组别一样则不会发生碰撞,这里主要是看后边两个属性,categories和mask下边是官方定义
category是类别,是给当前shape定义各个类别,mask是过滤,表示只会跟这种类别发生碰撞。