繁体   English   中英

repeatAction不设置动画

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM