Swift-如何为同一功能中的两个不同节点同时运行2个动作(线性模式)
我有一个函数,其中我需要一个接一个地运行两个操作。 e、 g 斯威夫特似乎正在同时执行这些操作。Swift-如何为同一功能中的两个不同节点同时运行2个动作(线性模式),swift,skaction,sknode,Swift,Skaction,Sknode,我有一个函数,其中我需要一个接一个地运行两个操作。 e、 g 斯威夫特似乎正在同时执行这些操作。 这正是我不希望在比赛中发生的事情。 我希望action2在action1完成后开始。 我该怎么办? 非常感谢。您可以在调用node1时传递一个完成处理程序。runAction将在node1的操作完成时启动node2的操作。例如: node1.runAction(action1) { node2.runAction(action2) } 编辑 针对您的评论,这里有一个可能的解决方案:像这样
这正是我不希望在比赛中发生的事情。
我希望action2在action1完成后开始。
我该怎么办?
非常感谢。您可以在调用
node1时传递一个完成处理程序。runAction
将在node1
的操作完成时启动node2
的操作。例如:
node1.runAction(action1) {
node2.runAction(action2)
}
编辑
针对您的评论,这里有一个可能的解决方案:像这样定义runAction1
(我假设runAction1
是一个类上的方法)
然后这样使用:
node1.runAction1(completion: node2.runAction2)
希望这能有所帮助。实际上我的帖子有点漏洞。那么,指定为node1.runAction1的这两个动作和下一个动作在不同的函数中。事实上,我调用的是func1-animateTheFirstBall()和func2-animathesecondball(),而不是node1.runAction1和其他。是的,请。我非常欣赏一个简单的例子,因为我不经常使用闭包(我想这就是你所说的)。谢谢你的努力。是的,效果很好。这就结束了我漫长的不眠之夜。再次非常感谢。很高兴我能帮忙!祝你的项目好运!另外,你提到过你不熟悉闭包——如果你有时间的话,我真的建议你研究一下闭包,因为它们在很多地方都很有用:)苹果的Swift编程语言详细介绍了它们。
func runAction1(completion: () -> Void) {
// ...
self.runAction(action, completion: completion)
}
node1.runAction1(completion: node2.runAction2)