当应用程序进入非活动状态时暂停游戏 - 停止计时器问题

Pausing game when app goes inactive - stopping timers issue

所以我有一个使用不同计时器的游戏。这些计时器提供了关键的游戏功能,因此它们必须按预期工作。 当应用程序进入非活动状态时,我可以使用

scene.paused = true

这会暂停除计时器以外的所有操作。我必须自己使每个计时器无效。然后,当应用程序激活时,我需要再次创建所有这些计时器。不幸的是,这打破了游戏的设计流程。例如,我的计时器每 5 秒触发一个事件。当计时器应在 1 秒内触发事件时,应用程序将变为非活动状态。如果我使它无效然后再次创建此计时器将在 5 秒内触发一个事件。 是的,我可以跟踪每个计时器的当前时间,但这似乎很麻烦(我有很多不同的 SKScenes 和不同的计时器)

这是不可接受的,所以我正在寻找更好的解决方案。首先想到的是使用 SKAction.waitForDuration 而不是计时器。 所以如果这是一个好的解决方案,我需要你的建议。我可以通过这种方式正确暂停 SKActions 吗?

看来这毕竟是个好主意。迁移到 SKAction 使暂停变得容易。