[英]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.