繁体   English   中英

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

[英]Removing a sprite when it goes off-screen

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

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

 - (void)didSimulatePhysics {

    [self removeAllObstacles];
}

- (void)removeAllObstacles {

    [blocks removeAllChildren];

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM