我试图在deltaTime
中计算经过的秒数,但我不确定如何计算,因为我的deltaTime
总是打印0.0166或0.0167。
下面是我的代码:
override func update(_ currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
deltaTime = currentTime - lastTime
lastTime = currentTime
我怎么才能让它每时每刻都有逻辑运行呢?
编辑:我能够想出以下几点,但有没有更好的方法?
deltaTimeTemp += deltaTime
if (deltaTimeTemp >= 1.0) {
print(deltaTimeTemp)
deltaTimeTemp = 0
}
3条答案
按热度按时间lc8prwob1#
我总是使用SKActions来处理这类事情:(以swift 3格式编写)
zu0ti5jz2#
如果你真的只关心1秒的时间间隔,那么你不应该存储每一帧的增量。只需存储开始时间并计算每一帧的经过时间。当经过时间超过1秒的时间间隔时,你就可以将开始时间重置为现在。
如果你想要一个以上的定时器,那么你需要维护一个定时器数组和一个时间间隔表以及调用的块。这会变得非常复杂,你应该使用iOS 10中内置的块定时器,它更简单:
vs3odd8k3#