Ios 试图;暂停“;定时器和恢复它们
使用Swift中的SpriteKit和计时器,我试图创建一个功能,暂停游戏,并在正确的时间继续。我发现了一个很棒的来源,它展示了一个允许这样做的系统。在我的代码中,我有一个函数pauseGame,它应该允许我获取计时器失效的当前时间Ios 试图;暂停“;定时器和恢复它们,ios,swift,Ios,Swift,使用Swift中的SpriteKit和计时器,我试图创建一个功能,暂停游戏,并在正确的时间继续。我发现了一个很棒的来源,它展示了一个允许这样做的系统。在我的代码中,我有一个函数pauseGame,它应该允许我获取计时器失效的当前时间 func pauseGame(){ enemyTimer.invalidate() enemyTimer2.invalidate() changeSpeed.invalidate() rubyTimer.invalidate()
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
}
我所要做的就是创建一个新的计时器,它的值为remaingdelay,但是我在上面遇到了一个错误
let elapsedTime = timeCaptured.timeIntervalSince(Date)
正在说“无法将类型'(Date).type'的值转换为预期的参数类型'Date'”
有什么想法吗?感谢查看。
Date
是一个类,Date()
返回初始化为“现在”的Date
实例,您需要:
let elapsedTime = timeCaptured.timeIntervalSince(Date())
或者干脆
让elapsedTime=timeCaptured.timeintervalencesnow
。哇,真不敢相信这么简单!谢谢你的快速回复。但这不可能是正确的timeCaptured
是“now”+几纳秒,因此从“now”计算elapsedTime
只是上一行中添加到“now”的值。我明白了,您也可以使用timeCaptured.timeIntervalSinceNow,因为这几乎是一样的。谢谢分享