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

标签 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 速度)

我怎样才能实现这个目标?

最佳答案

我的第一个想法是从 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/

相关文章:

ios - 使用 spritekit 和 UITouch 绘制直线创建多条线

ios - 带有 swift 和 Storyboard的 iOS8 中的简单表格 View

iphone - 有没有更简单的方法来替换 XCode 中的文件?

xcode - 升级到 Lion GM 后迷路了?我该如何解决?

swift - 使 SKLabelNode 忽略触摸

ios - JSTilemap - 仅加载可见的图 block

ios - Swift 中来自 nib 的自定义 UITableViewCell

swift - 如何检查用户的电子邮件是否已验证?

ios - SwiftUI WKWebView 检测 url 更改

html - iOS UIWebView-限制HTML路径