【发布时间】:2015-06-21 14:55:18
【问题描述】:
我正在Spritekit 中编写游戏代码。在用户输掉我的游戏后,我想创造一种方式让用户的生命在 30 分钟后恢复
我创建了一个整数(称为 Lives),每次用户输掉游戏时,它都会从整数中减去 1
我只是不知道如何在 30 分钟过去后补充用户的生命。我在NSObject Helper 类中编写了以下代码,但它不起作用。
-(void)ReplenishLives{
NSDate *now = [NSDate date];
NSTimeInterval oldDateTimeInterval = [now timeIntervalSinceReferenceDate];
NSTimeInterval thirtyMinutes = 60 * 30;
if (oldDateTimeInterval > thirtyMinutes) {
Lives = 5;
}
}
-(void)CheckTime{
LifeTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(ReplenishLives) userInfo:nil repeats:YES];
}
【问题讨论】:
-
您需要存储初始(旧)oldDateTimeInterval。在您当前的表格中,您不断从当前时间中减去当前的“旧”。研究使用 NSUserDefaults 存储初始时间值并将其与当前值进行比较。
标签: ios objective-c sprite-kit nsdate nstimer