V3:使两个相同碰撞类型的物体相互碰撞

时间:2015-06-03 12:01:13

标签: ios objective-c cocos2d-iphone

我是cocos2d的新手开发者,所以请耐心等待我。感谢。

我想要实现的是两个具有相同碰撞类型的实体(它们也不在自定义类中,只是CCSprite)只与彼此和地面(例如碎片)相撞而不与其他任何东西碰撞。我不明白的是如何格式化ccPhysicsCollisionBegin方法。如果我这样格式化:

-(BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair debris:(CCSprite *)debris debris:(CCSprite *)debris2

并返回YES它仍会影响其他不需要的身体,经过几次CCLOG后我发现它从未被调用过。那么实现我想要的正确方法是什么?希望我所要求的是可能的。

使用的代码:

debris.physicsBody = [CCPhysicsBody bodyWithRect:[debris boundingBox] cornerRadius:0];
    debris.name = @"Debris";
    debris.physicsBody.collisionType = @"debris";
    [physicsNode addChild:debris];

1 个答案:

答案 0 :(得分:0)

您需要设置collisionMask,它定义了身体可以碰撞的内容。您也应该设置collisionCategories

debris.physicsBody = [CCPhysicsBody bodyWithRect:[debris boundingBox] cornerRadius:0];
debris.name = @"Debris";
debris.physicsBody.collisionType = @"debris";
debris.physicsBody.collisionCategories = @[ @"debris" ];
debris.physicsBody.collisionMask = @[ @"debris" ];
[physicsNode addChild:debris];