Swift SpriteKit在SKAction.runBlock()中运行SKAction

时间:2015-12-02 19:43:07

标签: ios swift sprite-kit skaction

你能告诉我为什么这段代码不起作用吗?是不是可以在SKAction.runBlock()函数中运行一个Action?

let testaction = SKAction.repeatActionForever(SKAction.runBlock({self.myFunction()}))
runAction(testaction)

这是我的测试:

func myFunction() {
    runAction(SKAction.runBlock({
      let i = 0
      print(i)
    }))
}

我需要这个游戏。我想区分myFunction中的一些情况,以便在不同情况下运行不同的Actions。我做错了什么?

编辑:当我将myFunction()更改为此时,我会永远打印1,但不会从内部runBlock打印出来。

func myFunction() {
    let j = 1
    print(j)
    runAction(SKAction.runBlock({
      let i = 0
      print(i)
    }))
}

1 个答案:

答案 0 :(得分:0)

就像上面的人说的那样,你只需要稍加延迟就可以了,它应该有效

  let testaction1 = SKAction.runBlock(self.myFunction)
  let testaction2 = SKAction.waitForDuration(0.1)
  let sequence = SKAction.repeatActionForever(SKAction.sequence([testaction1, testaction2]))

  runAction(sequence)