运行 SKAction x 次数
Run SKAction x number of times
我有一个 SKAction,它基本上充当我在 sprite 工具包中的游戏的倒数计时器。为了让它成为一个计时器,尽管我把它放在一个 运行 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]))
}
你不能为此使用 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)
我有一个 SKAction,它基本上充当我在 sprite 工具包中的游戏的倒数计时器。为了让它成为一个计时器,尽管我把它放在一个 运行 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]))
}
你不能为此使用 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)