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