单独的SKSpriteNode上的并行SKAction

时间:2018-08-04 05:39:49

标签: ios sprite-kit skspritenode skaction sknode

我正试图在3个不同的节点上同时运行SKAction。我已经研究了SKAction.group,但是我所能找到的只是与在同一节点上而不是在不同节点上运行并行SKAction有关。

例如,我需要3个SKSpriteNodes在同一时间向左移动150pt,如果我这样写:

nodeOne.run(SKAction.moveBy(x: 0-150, y: 0, duration: 0.25));
nodeTwo.run(SKAction.moveBy(x: 0-150, y: 0, duration: 0.25));
nodeThree.run(SKAction.moveBy(x: 0-150, y: 0, duration: 0.25));

可以用肉眼观察到的动作不平行,而随后的动作明显滞后了几帧。可以在单独的节点上并行运行SKActions吗?

1 个答案:

答案 0 :(得分:0)

滞后可能是由于创建了三个相同的SKAction。尝试在“ didMove(to :)”中创建单个“ moveBy” SKAction:

let moveAction = SKAction.moveBy(x: -150, y: 0, duration: 0.25))

,然后在3个节点上运行该动作:

nodeOne.run(moveAction)
nodeTwo.run(moveAction)
nodeThree.run(moveAction)