运行 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)]))
我想在 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)]))