Swift - 如何 运行 在同一函数中针对两个不同的 SKNode 非同时(在线性模式下)执行 2 个操作

Swift - How to run 2 actions non-simultaneously (in linear mode) for two different SKNodes in the same function

我有一个功能,我需要一个接一个地 运行 2 个动作。 例如

func foo()
{
     ..........
     if someConditions
     {
          node1.runAction1
          node2.runAction2
     }
}

似乎 swift 正在 运行 同时执行这些操作。
而这正是我不想在我的游戏中发生的事情。
我希望 action2 在 action1 完成后开始。
我应该做什么?
非常感谢。

您可以在调用 node1.runAction 时传递一个完成处理程序,它将在 node1 的操作完成时启动 node2 的操作。例如:

node1.runAction(action1) {
    node2.runAction(action2)
}

编辑

针对您的评论,这里有一个可能的解决方案:像这样定义 runAction1(我假设 runAction1 是您的 类 之一的方法)。

func runAction1(completion: () -> Void) {
    // ...
    self.runAction(action, completion: completion)
}

然后像这样使用:

node1.runAction1(completion: node2.runAction2)

希望对您有所帮助。