gpt4 book ai didi

iphone - 为 iPhone 游戏中的关卡创建计时器

转载 作者:行者123 更新时间:2023-11-29 04:44:02 25 4
gpt4 key购买 nike

我试图在我的游戏中添加一个计时器,以便用户知道他们玩一个关卡花了多长时间。我发现我可以通过以下方式初始化计时器:

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方法。当我运行应用程序时,我确实看到计时器并跟踪时间,但是当我退出应用程序并重新进入它时,计时器不会暂停。我也不确定如何处理进入另一个 View (如选项菜单)然后返回此 View 。我了解 NSDefaults 和 NSCoding,并且了解如何将计时器上的当前值保存为 Coding 对象,为每个级别在 plist 中保留单独的键值对,但这似乎很麻烦。

是否有更好的方法来跟踪用户在关卡中花费的时间?

最佳答案

不必每次都进行计算(从当前时间减去开始时间),因为您关心的只是耗时,只需使用一个从 0 开始的变量,如 NSTimeInterval elapsedTime并在每次计时器触发时添加时间。 (如果您想像示例中那样将其跟踪到 0.1 秒,只需在显示之前除以 10 即可。)这样,您可以随时暂停它,并且当再次启动时它会从之前的位置继续.

关于iphone - 为 iPhone 游戏中的关卡创建计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9918180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com