控制花栗鼠的碰撞控制

时间:2014-05-23 16:59:24

标签: collision chipmunk

在花栗鼠中我有3种类型的物体:A,B和C.我需要A和B不要碰撞。我还需要B和C不要碰撞。另一方面,我需要A和C相撞。对于A和B不碰撞,我将其collisionGroup设置为相同。如果我将B和C设置为相同的collisioGroup,则此时A和C将具有相同的碰撞组,从而导致A和C不发生碰撞。我试图设置collisionMask / collisionCategories,但这也没有帮助。知道怎么做到这一点吗?

1 个答案:

答案 0 :(得分:0)

这是我如何解决问题的方法。

 A.collisionGroup=@"beams"
 A.collisionCategory=@[@"beam"];
 A.collisionMask=@[@"box"];

 B.collisionGroup=@"beams"
 B.collisionMask=@[@"none"];

 C.collisionCategory=@[@"box"];
 C.collisionMask=@[@"beam"];

说清楚。我将相同的碰撞组分配给A和B,以便它们在任何情况下都不会发生碰撞。这是因为碰撞组会覆盖使用collisionMask和collisionCategory定义的任何行为。然后我设置为A只与C碰撞而C只与A碰撞。我通过交叉设置彼此的碰撞事件和碰撞分类来做到这一点。还有一个非常重要的考虑因素是,如果你不想让B也与C发生碰撞,你必须将B的collisionMask设置为其他东西,否则B将与不在同一碰撞组中的任何东西发生碰撞。哎呀,就是这样。