运行 SKAction.sequences 中的多个 SKAction.runBlock 同时完成

Run multiple SKAction.runBlock in SKAction.sequences accomplished simultaneously

我想在 x 轴上来回移动 Sprite,因此决定结合使用序列和动作。基本上我想连续 运行 多个 SKAction.runBlock 。所以我创建了一个 SKAction.sequence 并在此操作中创建了多个 SKAction.runBlock。 它看起来像这样:

runAction(SKAction.sequence([SKAction.runBlock({ self.moveMad(self.size.width*0.1) }),
                             SKAction.runBlock({ self.moveMad(self.size.width*0.9) })]))

func moveMad(posX: CGFloat) {
        let move = SKAction.moveTo(CGPoint(x: posX, y: size.height - mad.size.height/2), duration: 3)
        mad.runAction(move)
    }

在 SKAction.sequence(SKAction.runBlock) 中,我调用了一个函数来创建一个 moveTo 动作。这可行,但问题是我的序列不起作用。它只是朝一个方向(右侧)移动。我也尝试实现一个完成处理程序,但这也没有解决问题。

我做错了什么?

试试这个:

mad.runAction(SKAction.sequence([SKAction.moveTo(CGPoint(x: self.size.width * 0.1, y: size.height - mad.size.height/2), duration: 3), SKAction.moveTo(CGPoint(x: self.size.width*0.9, y: size.height - mad.size.height/2), duration: 3)]))