好的,所以我很困惑。我将viewcontroller设置为physicsworld的委托。当我的Flappy Bird与硬币发生碰撞时,此方法会运行:
- (void)didBeginContact:(SKPhysicsContact *)contact {
if (contact != nil && contact.bodyA != nil){
if (coinsArray.count > 0)
{
if (contact.bodyA.mass == 0) {
[contact.bodyA.node removeAllActions];
[coinsArray removeObject:contact.bodyA.node];
[contact.bodyA.node removeFromParent];
savedData.coins++;
}
}
}}
所以这对我没有意义,因为有时候当我的小鸟接触到硬币时,我会收到一个badaccess电话,但是95%的情况下,它按预期工作。从场景中删除硬币的唯一时间是当鸟接触硬币时,或者当coin.position.x< (0.5 * coin.size.width);
我不确定为什么我会收到恶作剧,特别是因为我写了if(contact!= nil&& contact.bodyA!= nil)。另外,当有代表打电话说'嘿嘿!使用此SKPhysicsContact'?
运行此方法任何人的帮助?