如何在Swift中更改timeInterval NSTimer

时间:2015-03-28 20:58:46

标签: swift random nstimer repeat countdowntimer

我是swift的新手,我正在使用NSTimer创建一个随机生成的游戏我将此函数用于计时器https://github.com/yuzixun/swift-timer/tree/master/example

我的游戏工作正常,直到我根据使用计时器的玩家得分加速我的游戏有问题,所以我无法改变游戏的速度

我的Gamescene课程:

let myGame = Timer.repeat(after: 1) {
//my generated game code here
}
    myGame.start()

myGame:是一个使用Timer.repeat(在:1之后)每秒为我的游戏生成随机对象的函数。

let LevelUpdate = Timer.repeat(after: 0.1) {
//update my game and verify player score
if(self.score >= 1000 && self.score <= 2500){
// Speedup the time of the game
}
}

LevelUpdate:是一个为我的游戏更新一些变量并每0.1秒验证一次球员得分的函数。

我的目标:如果玩家达到1000点以上并且将myGame加速到0.8秒,就可以更改myGame的计时器,我的问题是可以更改myGame的时间间隔吗?

我需要找到一种通过玩家得分加快游戏速度的方法。

1 个答案:

答案 0 :(得分:0)

好的,现在我们有足够的信息来回答你的问题。

总结:

您正在使用Github提供的第三方库(提供的链接),可让您以各种不同的方式创建计时器。

您正在使用该库中名为Timer的类,并使用Timer.repeat方法创建重复计时器(在:之后)。

您创建了2个重复计时器。第一个以1秒的间隔运行,并将其保存在常量myGame中。

您还可以创建另一个以0.1秒间隔运行的重复计时器,并将其保存到名为LevelUpdate的常量。

您想知道如何更改myGame计时器的间隔。

这是你应该写的那种描述。清晰,明确,易于理解。

现在回答:

创建后,您无法在系统类NSTimer上更改间隔。

查看您正在使用的图书馆,它似乎也没有提供该功能。

你要做的就是杀死计时器并用一个不同间隔的新计时器替换它。

如果更改计时器的间隔,您可以修改您在内部使用的库。

如果不这样做,您需要将myGame更改为var。

您应该创建一个方法func createGameTimer (interval: NSTimeInterval) -> NSTimer,它将计时器间隔作为输入,并创建并返回您的游戏计时器。这样你可以杀死旧计时器并在需要时创建一个具有不同间隔的新计时器。