在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'转换为预期的参数类型'日期'”
有什么想法吗?感谢您对此进行调查。
答案 0 :(得分:1)
Date
是一个类,Date()
返回Date
初始化为"现在"的实例,您想要:
let elapsedTime = timeCaptured.timeIntervalSince(Date())