我设置了我的分数功能:
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 速度)
我怎样才能实现这个目标?
最佳答案
我的第一个想法是从 updateScore
方法返回一个 SKAction
:
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
但请注意,这不会使物体像您希望的那样更快下落,只会使其下落得更远。如果您希望其下降得更快,则需要减少 updateScore
方法中 SKAction
的持续时间。
关于swift - 如何通过 Sprite Kit Swift 中的分数来增加 SKAction.moveToY 中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40011402/