gpt4 book ai didi

ios - 如何停止功能更新(_ currentTime : TimeInterval) in Spritekit

转载 作者:可可西里 更新时间:2023-11-01 00:36:02 24 4
gpt4 key购买 nike

覆盖函数更新(当前时间:NSTimeInterval){
//...
}

如何在更新方法中停止当前时间?我想计算游戏开始后的时间。当玩家点击暂停按钮时,当前场景成功暂停。但是,更新中的 currentTime 正在移动。

最佳答案

场景暂停时,不会调用update,试试这段代码:

class GameScene: SKScene {

override func didMove(to view: SKView) {
let wait = SKAction.wait(forDuration: 2)
let pause = SKAction.run { self.isPaused = true }
self.run(SKAction.sequence([wait, pause]))
}

override func update(_ currentTime: TimeInterval) {
print("update")
}
}

“update”只会在前 2 秒打印。这证明暂停场景将停止更新。您可能不是在暂停场景,而是在场景中运行所有操作的节点。

除此之外,通过暂停场景实现暂停屏幕并不是一个好主意,因为如果场景暂停,用户无法通过点击离开暂停屏幕。此外,您不能在暂停屏幕中显示炫酷的动画。

我平时做的就是有一个后台节点。每个游戏 Sprite 都作为背景节点的子节点添加。在暂停画面中,后台暂停但场景仍在运行。然后,我将暂停屏幕 Sprite 添加为场景的直接子级,以便您仍然可以与暂停屏幕进行交互。

您真的不需要“停止”update 方法。你只需要在方法中检查游戏是否暂停。如果是,立即返回。

如果您想测量自玩家开始游戏以来经过了多少时间,您还可以使用Date 对象。在游戏开始时创建一个 Date,在用户暂停时创建另一个 Date。调用 timeIntervalSince 方法即可!

关于ios - 如何停止功能更新(_ currentTime : TimeInterval) in Spritekit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41073727/

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