随着游戏的进行,更改SKAction.waitForDuration()中的时间间隔

时间:2016-01-06 01:37:53

标签: swift sprite-kit skaction

基本上这是重复动作序列中的一个动作。每次在序列中调用动作时,我都希望等待时间增加,所以我添加了一个计数器作为等待时间数,并在序列中调用动作时递增。问题在于,变量仅在序列开始时递增,但在序列中再次发生动作时根本不会改变,等待时间在整个游戏中保持不变。并且我无法弄清楚如何在调用它时改变它

var timeInterval = 0
//main method
override func didMoveToView(view: SKView) {
    var scale = SKAction.scaleTo(5,duration: 2)
    sprite = spriteSet(texture: SKTexture(imageNamed: "texture"), color: UIColor.brownColor(), size: CGSizeMake(100,100))
    sprite.runAction(SKAction.repeatActionForever(SKAction.sequence([waitAction,scale,waitAction])))
}
//I want the time to increase each time this function is called in the sequence
func waitFunction() -> SKAction {
    timeInterval++
    return SKAction.waitForDuration(NSTimeInterval(timeInterval))
}

1 个答案:

答案 0 :(得分:2)

您可以使用递归方式来完成您想要的任务(增加等待参数的持续时间):

// Swift
self.view!.endEditing(true)

// Objective C
[self.view endEditing:YES];

您目前遇到的是,等待操作是在动作序列中创建,初始化和重复使用的。您每次都必须重建一个动作。