如何在Swift中使用deltaTime正确计算1秒

tba*_*w02 6 sprite-kit swift

我正在尝试计算经过的秒数,deltaTime但我不知道该怎么做,因为我deltaTime不断打印0.0166或0.0167.

这是我的代码:

override func update(_ currentTime: CFTimeInterval) {
    /* Called before each frame is rendered */

    deltaTime = currentTime - lastTime
    lastTime = currentTime
Run Code Online (Sandbox Code Playgroud)

我怎么做到这一点我可以在这里挤压一些逻辑来运行每一秒?

编辑:我能够提出以下内容,但有更好的方法吗?

            deltaTimeTemp += deltaTime
            if (deltaTimeTemp >= 1.0) {
                print(deltaTimeTemp)
                deltaTimeTemp = 0
            }
Run Code Online (Sandbox Code Playgroud)

cla*_*pps 4

我总是使用 SKActions 来处理此类事情:(用 swift 3 编写)

let wait = SKAction.wait(forDuration: 1.0)
let spawnSomething = SKAction.run {
   //code to spawn whatever you need
}

let repeatSpawnAction = SKAction.repeatForever(SKAction.sequence([wait, spawnSomething]))

self.run(repeatSpawnAction)
Run Code Online (Sandbox Code Playgroud)