如何让所有长时间的skactions同时工作而不是一个接一个
how to make all long-duration skactions work at the same time not one after one
我正在研究 sprite kit,现在我想做的是我正在使用 for 循环并检查数组中有多少个 sknode,并使数组中的每个 sknode 都执行一个 skaction,这仍然是一个非常很长一段时间——大概一个小时。但是,每次我这样做时,它只会对第一个 sknode 执行第一个 skaction,而不是其余的 sknode。我想是因为它在等待第一个完成然后在for循环中跳转到第二个。那么如何才能让他们同时执行动作呢?
这是一个例子:
for node in nodes {
let action1 = SKAction()
let action2 = SKAction()
let action3 = SKAction()
let group = SKAction.group([action1,action2,action3])
node.removeActionForKey("group")
node.runAction(group, withKey: "group")
}
你应该使用SKAction
的group:
方法同时进行动作运行,然后通过调用runAction:
方法将它们添加到执行队列中。请注意,如果您有一些已经 运行ning 的操作,则在前一个操作完成之前不会开始执行,因此您必须通过调用 removeActionForKey:
方法
来删除该操作
我正在研究 sprite kit,现在我想做的是我正在使用 for 循环并检查数组中有多少个 sknode,并使数组中的每个 sknode 都执行一个 skaction,这仍然是一个非常很长一段时间——大概一个小时。但是,每次我这样做时,它只会对第一个 sknode 执行第一个 skaction,而不是其余的 sknode。我想是因为它在等待第一个完成然后在for循环中跳转到第二个。那么如何才能让他们同时执行动作呢?
这是一个例子:
for node in nodes {
let action1 = SKAction()
let action2 = SKAction()
let action3 = SKAction()
let group = SKAction.group([action1,action2,action3])
node.removeActionForKey("group")
node.runAction(group, withKey: "group")
}
你应该使用SKAction
的group:
方法同时进行动作运行,然后通过调用runAction:
方法将它们添加到执行队列中。请注意,如果您有一些已经 运行ning 的操作,则在前一个操作完成之前不会开始执行,因此您必须通过调用 removeActionForKey:
方法