Sprite Kit didBeginContact被称为两次

时间:2014-12-04 01:21:58

标签: objective-c sprite-kit collision-detection skphysicsbody

我有一个精灵与墙壁接触的游戏,当我联系时我会移除精灵并做游戏条件之类的事情,例如增加玩家得分等等。但是,由于一些奇怪的原因,每次调用didBeginContact即使我每次都删除节点,精灵也会与墙壁接触!为什么会这样?

这是我的代码:

-(void)didBeginContact:(SKPhysicsContact*)contact
{
   NSLog(@"Did Begin Contact");

// First body is always animal
SKPhysicsBody *firstBody;
SKPhysicsBody *secondBody;

if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask)
{
    firstBody = contact.bodyA;
    secondBody = contact.bodyB;
}
else
{
    firstBody = contact.bodyB;
    secondBody = contact.bodyA;
}

// Animal Clean Up (Removal) after contact with wall
[firstBody.node removeFromParent];

score++;

}

0 个答案:

没有答案