0

好的,所以我很困惑。我将我的视图控制器设置为物理世界的代表。当我的 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' 运行这个方法?

任何人的帮助?

4

0 回答 0