如何通过Sprite Kit Swift中的得分增加SKAction.moveToY中的数字?

时间:2016-10-13 02:40:17

标签: swift xcode sprite-kit

我的分数功能设置为:

func updateScore(scoreToAdd:Int) {
    score = score + scoreToAdd
    scoreLabel.text = "Score: " + String(score)
}

我希望提高这个坠落物体的速度:

SKAction.moveByX(0, y: ??? , duration: 8.0)
let MoveYAction = SKAction.moveToY(-30, duration: 8.0)

每次得分上升一次。所以我希望它是那个值(-30 +得分x速度)

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我的第一个想法是从SKAction方法返回updateScore

func updateScore(scoreToAdd:Int) -> SKAction {

    score = score + scoreToAdd    
    scoreLabel.text = "Score: " + String(score)    
    return SKAction.move(by: CGVector(dx: 0, dy: -30 - score), duration: 8.0)
}

然后,当您调用updateScore方法时,将其设置为变量以使用该操作:

let moveAction = updateScore(scoreToAdd: xyz)

node.run(moveAction) //notation in swift 3

但是请注意,这不会让对象像你想要的那样更快,它只会使它更远。如果您希望它速度更快,您希望减少SKAction方法中updateScore的持续时间。