当我暂停游戏并等待一段时间,然后恢复游戏时,会立即添加一艘外星飞船。如何让游戏暂停时“计时器”不会继续?
我的代码:
@implementation GamePlayScene
-(void) didMoveToView:(SKView *)view {
...
self.addAlienTimeInterval = [Util randomWithMin:10 max:25];
self.timeSinceLastAlien = 0;
...
}
-(void) update:(NSTimeInterval)currentTime{
if (!_isGamePaused){
if (self.lastUpdateTimeInterval){
self.timeSinceLastAlien += currentTime - self.lastUpdateTimeInterval;
}
if (self.timeSinceLastAlien > self.addAlienTimeInterval && !self.gameOver){
[self addAlienShip];
self.timeSinceLastAlien = 0;
}
self.lastUpdateTimeInterval = currentTime;
...
}
}
@end
答案 0 :(得分:2)
当update:
进程暂停"暂停"时,lastUpdateTimeInterval
进程不会分配timeSinceLastAlien
。条件为真,因此当您恢复时,lastUpdateTimeInterval
会根据您第一次点击暂停按钮时看到的lastUpdateTimeInterval
进行扩充。
当_isGamePaused
为真时,您需要不断更新currentTime - self.lastUpdateTimeInterval
属性,以便时间间隔f1(x)
能够反映未暂停的游戏时间。