我在Sprite Kit中有一个项目,我正在努力使计时器逐渐减少。例如,如果timer float变量设置为3.0,则会逐渐减小并在0,3秒后。随着更新工作在精灵工具包中的方式,它是一个可怕的混乱试图让一个整数逐渐减少。
例如:
time+=1;
如果我将其置于更新无效状态,它将根据帧等非常快速且不同地增加。有没有一种方法可以以稳定的速率增加或减少一个值,尽管Sprite Kit中的fps没有?
答案 0 :(得分:1)
最好每次更新获取当前时间并将其与初始时间进行比较,以确定何时通过3秒。
在SKScene
子类中声明一个ivar:
@implementation MyScene {
NSDate* _timestamp;
}
计时器启动时:
_timestamp = [NSDate timeIntervalSinceReferenceDate];
在更新通行证中检查您的计时器:
- (void)update:(NSTimeInterval)currentTime {
if(_timestamp != nil && currentTime - _timestamp.timeIntervalSinceReferenceDate >= 3.0) {
// Perform your timer event
}
// Other updates
}