【发布时间】:2017-01-10 15:43:32
【问题描述】:
我只是想问一下Apple提供的SpriteKit官方更新功能和raywenderlich提供的更新功能有什么区别。为什么我应该使用 self.lastUpdate 时间而不是普通变量?这是我的代码:
import SpriteKit
class GameScene: SKScene {
private var lastUpdateTime: TimeInterval = 0
private var dt: TimeInterval = 0
override func update(_ currentTime: TimeInterval){
if lastUpdateTime > 0 {
dt = currentTime - lastUpdateTime
}
else {
dt = 0
}
lastUpdateTime = currentTime
print("\(dt * 1000) in miliseconds since last update")
}}
这里是官方功能
import SpriteKit
class GameScene: SKScene {
private var lastUpdateTime : TimeInterval = 0
override func update(_ currentTime: TimeInterval) {
// Called before each frame is rendered
// Initialize _lastUpdateTime if it has not already been
if (self.lastUpdateTime == 0) {
self.lastUpdateTime = currentTime
}
// Calculate time since last update
let dt = currentTime - self.lastUpdateTime
// Update entities
for entity in self.entities {
entity.update(deltaTime: dt)
}
self.lastUpdateTime = currentTime
}
}
【问题讨论】:
-
你的意思是
self.lastUpdateTime和lastUpdateTime有什么区别?如果是这样,从技术上讲是没有的——只是约定/风格的问题。 -
是的,只是 self.lastUpdateTime 的区别
-
非常感谢您的快速答复
-
您需要数学解释吗?或者您希望在两种解决方案之间进行性能分析?或者您实际上想知道什么?
标签: swift sprite-kit