运行 SKAction x 次

jos*_*Lor 2 for-loop ios sprite-kit skaction swift3

我有一个 SKAction,它本质上用作精灵套件中我的游戏的倒数计时器。虽然我把它放在一个运行了 50 次的 for 循环中,但让它成为一个计时器。此操作的实际延迟有效,但是 for 循环似乎把一切都搞砸了。Spritekit 中倒数计时器的任何其他选项也可以。我在这里先向您的帮助表示感谢。

    let wait = SKAction.wait(forDuration:0.1)
    let action = SKAction.run {
        time = time - 1
    }
    for _ in 1...50 {
        self.run(SKAction.sequence([wait,action]))
    }
Run Code Online (Sandbox Code Playgroud)

Sim*_* Mo 5

您不能为此使用 for 循环,您需要使用SKAction.repeat. 原因是循环将执行self.run(SKAction.sequence([wait,action]))50 次而不等待SKAction.sequence([wait,action])完成。我假设您真正想要的是一个接一个地执行self.run一次和SKAction.sequence([wait,action])50 次。

这是我为您制作的示例。

    let wait = SKAction.wait(forDuration:0.1)
    let action = SKAction.run {
        time = time - 1
    }
    let repeatAction = SKAction.repeat(SKAction.sequence([wait,action]), count: 50)

    self.run(repeatAction)
Run Code Online (Sandbox Code Playgroud)