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)
希望对您有所帮助。
我有一个功能,我需要一个接一个地 运行 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)
希望对您有所帮助。