0
我试图在我的游戏中添加一个计时器,以便用户知道他们花了多长时间玩关卡。伊夫想通了,我可以初始化定时器方式如下:在iphone游戏中创建一个关卡的计时器
bool showTimer = YES;
NSDate startDate;
UILabel timerLabel; // initialized in viewDidLoad
-(void) showElapsedTime: (NSTimer *) timer {
if (showTimer) {
NSTimeInterval timeSinceStart;
if(!startDate) {
startDate = [NSDate date];
}
timeSinceStart = [[NSDate date] timeIntervalSinceDate:startDate];
NSString *intervalString = [NSString stringWithFormat:@"%.0f",timeSinceStart];
timerLabel.text = intervalString;
if(stopTimer) {//base case
[timer invalidate];
}
}
}
- (void) startPolling {
[NSTimer scheduledTimerWithTimeInterval:0.1f target:self selector:@selector(showElapsedTime:) userInfo:nil repeats:YES];
}
我开始在viewDidLoad中的startPolling方法。当我运行应用程序时,我确实看到了计时器并跟踪时间,但当我退出应用程序并重新输入时,计时器不会暂停。我也不知道如何处理转到另一个视图(如选项菜单),然后回到这个视图。我理解NSDefaults和NSCoding,并且我看到如何将计时器的当前值保存为一个Coding对象,在每个级别保留一个单独的键值对,但这看起来很麻烦。
有没有更好的方式来跟踪用户在一个级别花费多长时间?