gpt4 book ai didi

ios - 在 SpriteKit 游戏中每 n 秒添加一个 "life"(钢琴 block 的方式)

转载 作者:搜寻专家 更新时间:2023-11-01 06:37:54 26 4
gpt4 key购买 nike

我在 SpriteKit 游戏中有一个函数,每 5 分钟为用户添加一次“生命”

startTimer = NSTimer.scheduledTimerWithTimeInterval(300, target: self, selector: #selector(GameScene.addLife), userInfo: nil, repeats: true)

但是当用户关闭应用程序时,此代码将被终止,并且无法计算用户在重新打开应用程序时必须获得的生命量。

我想知道如何计算自用户关闭应用程序以来的时间量,以便计算要给予的生命量。

我正在考虑使用 NSUserDefaults 来存储他们关闭应用程序之前的时间,并在他们重新打开应用程序时从中计算时间量,但问题是用户可以更改他们的时间,从而得到额外的生命作为“黑客”。

有人知道怎么解决吗?

最佳答案

我同意 Martin R 的评论。一个好方法是使用外部时间服务器。

正如在 NSTimer 讨论和本 SO 中多次解释的那样回答,在Sprite Kit 不要使用 NSTimer,performSelector:afterDelay: 或者Grand Central Dispatch(GCD,即任何dispatch_...方法)因为这些计时方法忽略了节点、场景或 View 的暂停状态。

您可以使用 SKAction 创建您的计时器,如果您有一些困难,请尝试查看此 SO answer .

关于ios - 在 SpriteKit 游戏中每 n 秒添加一个 "life"(钢琴 block 的方式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39326825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com