在一个序列内同时运行两个动作

Jar*_*ron 1 sequence sprite-kit skaction swift

我不确定我所寻求的是否可行,但我只是在检查以确保我没有做到这一点.

目前我有两个序列,它们同时运行.每个序列通过等待3秒开始,然后一个序列缩放节点,另一个序列调整该节点的alpha.所以代码看起来像这样:

node.runAction(SKAction.sequence([animationWait, animationScale]))
node.runAction(SKAction.sequence([animationWait, animationAlpha]))
Run Code Online (Sandbox Code Playgroud)

但是有没有办法在一个序列中同时运行animationScale和animationAlpha?所以它看起来像这样(这不起作用,但我希望你能看到我正在尝试做的事情):

node.runAction(SKAction.sequence([animationWait, (animationScale, animationAlpha)]))
Run Code Online (Sandbox Code Playgroud)

小智 11

您可以将操作组合到一个序列中:

var actions = Array<SKAction>()

actions.append(SKAction.sequence([animationWait, animationScale]))
actions.append(SKAction.sequence([animationWait, animationAlpha]))

let group = SKAction.group(actions)

node.runAction(group)
Run Code Online (Sandbox Code Playgroud)

执行操作时,组成该组的操作将立即立即启动并并行运行.组动作的持续时间是动作集合中持续时间最长的.如果组中的操作的持续时间小于组的持续时间,则操作完成,然后空闲,直到组完成剩余的操作.这在创建重复组的重复操作时最重要.