我正在研究精灵工具包,现在我想做的是我正在使用for循环并检查数组中有多少个sknode并使数组中的每个sknode都做了一个很长时间的skaction - 大概一个小时。但是,每次我执行此操作时,它只会对第一个sknode执行第一次skaction,而不执行其余的sknode。我认为这是因为它正在等待第一个完成,然后跳转到for循环中的第二个。那么我该如何让他们同时执行动作呢?
答案 0 :(得分:0)
以下是一个例子:
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")
}
您应该使用group:
SKAction
方法同时运行操作,然后通过调用runAction:
方法将它们添加到执行队列中。请注意,如果您有一些已在运行的操作,则执行将在上一个操作完成之前启动,因此您必须通过调用removeActionForKey:
方法