繁体   English   中英

Sprite Kit和Swift,随着时间的推移提高节点的速度?

[英]Sprite Kit and Swift, increasing the speed of a node over time?

我有一个墙,生成然后左移(拉)我很好奇,如果我可以以某种方式使它,以便加班越来越快。 这可能吗?

这是我用来拉“墙”的代码:

func startMoving() {
    let moveLeft = SKAction.moveByX(-300, y: 0, duration: 0.35)
    runAction(SKAction.repeatActionForever(moveLeft))
}

如果您需要知道,这就是生成墙的原因:

var generationTimer: NSTimer?

func startGeneratingWallsEvery(seconds: NSTimeInterval) {
    generationTimer = NSTimer.scheduledTimerWithTimeInterval(seconds, target: self, selector: "generateWall", userInfo: nil, repeats: true)

这行代码是启动生成器的原因

wallGenerator.startGeneratingWallsEvery(0.5)

一切正常,但我想知道如何制作它所以它开始慢,然后加快加速(使其更难)。

一种选择是在动作持续时间内创建一个变量,并保持一个计数器,每当拉动一个墙时,该计数器就会递增。 移动了一定数量的墙后(本例中为5),您可以将持续时间减少一定量。

var duration: NSTimeInterval = 0.35
var counter: NSUInteger = 0

func startMoving(duration: NSTimeInterval) {
    let moveLeft = SKAction.moveByX(-300, y: 0, duration: duration)
    runAction(SKAction.repeatActionForever(moveLeft))

    counter += 1
    if counter % 5 == 0 {
        duration -= 0.01
    }
}

如果SKAction持续时间为负,我不确定会发生什么,所以你可能需要防范。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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