我有一个功能,我需要一个接一个地运行2个动作。 e.g。
func foo()
{
..........
if someConditions
{
node1.runAction1
node2.runAction2
}
}
似乎swift正在同时运行这些动作
而这正是我不希望在游戏中发生的事情
我希望action1在action1完成后启动。
我该怎么做?
非常感谢。
答案 0 :(得分:1)
您可以在调用node1.runAction
时传递完成处理程序,当node2
的操作完成时,该处理程序将启动node1
的操作。例如:
node1.runAction(action1) {
node2.runAction(action2)
}
修改强>
在回复您的评论时,这是一个可能的解决方案:定义runAction1
就像这样(我假设runAction1
是您某个类的方法)。
func runAction1(completion: () -> Void) {
// ...
self.runAction(action, completion: completion)
}
然后像这样使用:
node1.runAction1(completion: node2.runAction2)
希望有所帮助。