在某些情况为真时如何重复动作?

ads*_*dsf 2 algorithm ios sprite-kit swift

var action = SKAction.sequence([
                 SKAction.waitForDuration(1),
                 SKAction.runBlock({
                      //Some code
                 })
             ])
Run Code Online (Sandbox Code Playgroud)

我希望上述操作在某些情况为真时继续重复执行。我怎样才能做到这一点?

我知道我可以一次使用动作,也可以runAction(action)永远重复执行一次runAction(SKAction.repeatActionForever(action))。我如何只在某些条件为真时重复它?

如果使用动作无法做到这一点,那么除了在某些条件为真的情况下可以重复这些步骤之外,还有另一种方法(显然,在单独的线程上,我不希望这冻结我的应用程序):

1)等一下

2)执行一段代码

3)检查条件是否正确。如果它停止重复。否则,重复。

我很犹豫,sleep()因为这听起来像是一个糟糕的解决方案,而且苹果公司不允许商店中的应用程序使用。

ads*_*dsf 5

使用Swift的替代解决方案:

runAction(
     SKAction.repeatActionForever (
           SKAction.sequence([
                SKAction.waitForDuration(1),
                SKAction.runBlock({
                      //Code you want to execute
                      if conditionIsTrue {
                            self.removeActionForKey("New Thread")
                      }           
                })
           ])
     ),
     withKey: "New Thread"
)
Run Code Online (Sandbox Code Playgroud)