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

时间:2015-11-11 17:40:33

标签: ios swift sprite-kit skaction tvos

我想在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 Action。这有效,但问题是我的序列不起作用。它只是向一个方向(右侧)移动。我也试图实现一个完成处理程序,但也没有解决问题。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

试试这个:

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)]))