ios - 如何避免在 SpriteKit 中传递 currentTime ?

标签 ios swift time sprite-kit

我在开发应用程序时发现,我的一些节点需要访问传递给更新方法的 currentTime 以实现业务逻辑。

不断地将其作为参数传递给所有可能需要它的初始化程序和方法似乎很困惑。

我想知道其他开发人员可能对这个问题有什么解决方案(是否有任何标准模式)。访问系统时间是一个选项,但可能会产生一些开销,并且每次调用时都会有所不同。

也许可以使用全局变量,但我想知道是否存在任何线程问题或在闭包中使用它的问题。

选项?

最佳答案

好吧,我想你可以创建某种全局变量,例如:

static var _currentTime: CFTimeInterval = 0

然后在更新函数中,您可以将当前时间分配给该变量:

override func update(currentTime: CFTimeInterval) {
    _currentTime = currentTime
}

只要您在任何范围之外声明全局变量,您就应该能够从游戏中的任何位置访问它。

关于ios - 如何避免在 SpriteKit 中传递 currentTime ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29624193/

相关文章:

iOS:在堆栈上创建 UITableview 单元格

swift - 如何使用 SwiftUI 将按钮固定在 View 底部?

swift - 动态转换调用失败

c++ - 用于从 Python 测量外部 .exe 运行时的更准确的计时器?

javascript - 在 jquery 中重置耗时和 setInterval?

ios - UITextField 目标/ Action 与委托(delegate)方法

ios - 将变量与 UserDefaults 同步的正确方法

ios - 以编程方式更改另一个类中的数组

ios - 从 Storyboard自定义 UIViewController 初始化

c++ - difftime 在特定日期返回奇怪的值