[英]repeatAction doesn't animate
如果我一直执行动作,动画将不起作用,但是如果我只运行一次,动画就可以正常工作。
func go() {
var block = SKAction.runBlock { self.animate(index: self.random(), wait: 5.7) }
runAction(SKAction.repeatActionForever(block))
}
func animate(# index: Int, wait: Double) {
let anim = SKAction.animateWithTextures([
SKTexture(imageNamed: "img1"),
SKTexture(imageNamed: "img2"),
SKTexture(imageNamed: "img3"),
SKTexture(imageNamed: "img4")],
timePerFrame: 0.03)
let pop = SKAction.repeatAction(anim, count: 1)
sequence = SKAction.sequence([
SKAction.repeatAction(pop, count: 1),
SKAction.waitForDuration(0.7)])
item[index].runAction(SKAction.repeatAction(sequence, count: 1), completion: toggleTouch)
println(index) //this line works fine
}
我猜想它会继续执行新动作,而不是之前的动画完成之前,但是我该怎么做呢?
您的代码非常复杂。 试试这个,让我知道我提供的代码是否不能满足您的游戏功能。
让anim = SKAction.animateWithTextures([SKTexture(imageNamed:“ img1”),SKTexture(imageNamed:“ img2”),SKTexture(imageNamed:“ img3”),SKTexture(imageNamed:“ img4”)],timePerFrame:0.03)
func go() {
self.animate(index: self.random(), wait: 5.7);
}
func animate(# index: Int, wait: Double) {
let actionFinish = SKAction.runBlock { () -> Void in
// toggleTouch() is called here before println
println(index) //this line works fine
}
let sequence = SKAction.sequence([
anim,
SKAction.waitForDuration(wait), // or 0.7 as your code
actionFinish
]);
item[index].runAction(SKAction.repeatActionForever(sequence))
}
您的代码不清楚,您的问题也是如此。 提供更多信息,以便我们提供实际帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.