试图“暂停”计时器并恢复它们

时间:2018-06-10 02:40:01

标签: ios swift

在Swift中使用SpriteKit和Timers,我试图创建一个暂停游戏的功能,并以正确的时间恢复。我找到了一个很棒的源"Pausing" the Game in Swift,它显示了一个允许这样的系统。在我的代码中,我有函数pauseGame,它应该允许我获取计时器在

时失效的当前时间
func pauseGame(){
    enemyTimer.invalidate()
    enemyTimer2.invalidate()
    changeSpeed.invalidate()
    rubyTimer.invalidate()

    // 0.3 is the original delay time when the timers were created

    let calendar = Calendar.current
    let timeCaptured = calendar.date(byAdding: .nanosecond, value: Int(Int64(0.3 * Double(NSEC_PER_SEC))), to: Date())!
    let elapsedTime = timeCaptured.timeIntervalSince(Date)
    let remainingDelay = 0.3 - elapsedTime

}

我所要做的就是使用remainingDelay的值创建新的计时器,但是我在

上出错了
    let elapsedTime = timeCaptured.timeIntervalSince(Date)

说“无法将类型的值'(日期).Type'转换为预期的参数类型'日期'”

有什么想法吗?感谢您对此进行调查。

1 个答案:

答案 0 :(得分:1)

Date是一个类,Date()返回Date初始化为"现在"的实例,您想要:

let elapsedTime = timeCaptured.timeIntervalSince(Date())