我的应用是一个带有应用状态保存和恢复功能的SpriteKit游戏。当应用程序状态被保存时,当前SKScene中的大多数节点都会被编码。
当运行SKAction的节点被编码和解码时,该动作将从头开始重新启动。这似乎是标准的SpriteKit行为。
对我来说,这种行为在SKAction序列中最为明显。在解码时,序列将重新启动,无论其组成部分的动作已经完成了多少次。例如,假设运行序列的代码如下:
如果应用程序状态在10秒等待期间被保留并恢复,则
当运行SKAction的节点被编码和解码时,该动作将从头开始重新启动。这似乎是标准的SpriteKit行为。
对我来说,这种行为在SKAction序列中最为明显。在解码时,序列将重新启动,无论其组成部分的动作已经完成了多少次。例如,假设运行序列的代码如下:
[self runAction:[SKAction sequence:@[ [SKAction fadeOutWithDuration:1.0],
[SKAction fadeInWithDuration:1.0],
[SKAction waitForDuration:10.0],
[SKAction removeFromParent] ]]];
如果应用程序状态在10秒等待期间被保留并恢复,则
SKAction
序列将从头开始重新启动,出现第二个可见的淡出和淡入。
SKAction sequence
应该表现出与其他动作一致的解码行为是有意义的。 但是,为了防止已经完成的任何操作再次运行,可以进行例外处理。 如何防止解码后序列重新启动?