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對象,在每個級別保留一個單獨的鍵值對,但這看起來很麻煩。
有沒有更好的方式來跟蹤用戶在一個級別花費多長時間?