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