当一个精灵离开屏幕时删除它

时间:2014-05-05 08:25:13

标签: ios objective-c sprite-kit

我在屏幕上有一个从左到右的精灵,当它离开屏幕时它不会回来。解除分配的最佳位置在哪里?在-update方法?要么?

2 个答案:

答案 0 :(得分:2)

您可以使用didSimulatePhysics方法。它在更新方法之后调用。我们可以确定在更新方法中需要完成的任何操作都已完成,然后清理对象或循环遍历它们并找出需要删除的对象。

 - (void)didSimulatePhysics {

    [self removeAllObstacles];
}

- (void)removeAllObstacles {

    [blocks removeAllChildren];

    [gameLayer enumerateChildNodesWithName:@"baddies" usingBlock:^(SKNode *node, BOOL *stop) {

        if (node.position.x < - 100)
            [node removeFromParent];
    }];
}

答案 1 :(得分:0)

是的,必须仅在更新方法中添加。因为Sprite Kit会为每个帧自动调用update:方法。