我有一个在屏幕上从左向右移动的精灵,当它离开屏幕时就不会再回来了。哪里是释放它的最佳地点?在-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];
}];
}
是的,它只能在更新方法中添加。因为update:
方法将被Sprite Kit自动调用每一帧。