iOS Sprite Kit didBeginContact无法正常工作

时间:2014-06-03 05:00:06

标签: ios7 sprite-kit skphysicsbody

我有2个没有背景和三角形的图像,我希望将一个三角形连接到另一个三角形,但是Sprite套件认为我的图像是正方形而不是三角形,并且在正确的时间不叫我doBeginContact,例如:

Imgur

我像这样创建我的精灵:

self.sprite = [SKSpriteNode spriteNodeWithImageNamed:spriteName];

[self.sprite setSize:CGSizeMake(40, 40)];
self.sprite.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:self.sprite.size];
self.sprite.physicsBody.mass = 0;
self.sprite.physicsBody.usesPreciseCollisionDetection = YES;    
self.sprite.physicsBody.categoryBitMask = Category;
self.sprite.physicsBody.collisionBitMask = 0;
self.sprite.physicsBody.contactTestBitMask = Category;   
self.sprite.physicsBody.dynamic = YES;

1 个答案:

答案 0 :(得分:2)

两个身体之间的接触取决于他们的物理身体,而不是他们的纹理。所以,当你使用

self.sprite.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:self.sprite.size];

您正在附加一个矩形物理实体。

您需要使用以下方法创建三角形physicsBody:

[SKPhysicsBody bodyWithPolygonFromPath:path];

阅读方法here

要获取创建路径的值,您可以使用SKPhysicsBody Path Generator工具。