2016-09-13 86 views
0

我宣布延迟,它给了我一个错误,我试图减慢计时器。类型'GameScene没有成员'延迟'

//Updates Timer 
    func updateTimer() { 
     var delay: Int 
     seconds += 1 
     self.timerLabel.text = String(self.seconds * 0.01) 
     timer = NSTimer.scheduledTimerWithTimeInterval(-2.0, target: self, selector: #selector(GameScene.delay), userInfo: nil, repeats: false) 
+0

[1]:http://i.stack.imgur.com/oKX8b.png这里是图片 – Bran

+0

请包括错误作为文本在这里,所以即使该图像被删除,该问题仍然有用。 – Robert

+0

我想你错了。首先你的延迟是一个变种,没有一个功能,第二点,在精灵套件中,你应该避免使用NSTimer,除了在等待游戏中的NSNotification –

回答

0

一个的NSTimer的选择器部分是指这样你就声明该函数则定时器应该被放置在函数的外部,而不是在函数内部

func updateTimer() { 
    var delay: Int 
    seconds += 1 
    self.timerLabel.text = String(self.seconds * 0.01)} 
let timer = NSTimer.scheduledTimerWithTimeInterval(2.0, target: self, selector: #selector(self.updateTimer), userInfo: nil, repeats: false) 

也你可能是运行一个函数当你说你试图减慢计时器时更具体,所以

+0

当我把它放入它并没有解决任何问题。它给了我更多的错误。 – Bran

+0

什么版本的swift是2.2或3.0中的 –

0

该消息告诉你,没有选择器GameScene.delay。你需要一个匹配这个名字的func。请注意,因为您使用了“GameScene”而不是“gameScene”,所以它可能是一个类,在这种情况下,您需要一个名为delay的“class func”。然而,更可能的是你想要“self.delay”被调用。即。其中之一

func delay(timer: NSTimer) { ... } 
    class func delay(timer: NSTimer) { ... } 

另外,你想用“-2.0”实现什么?您不能在过去运行计时器 - 如果< = 0,则默认为0.1。

+0

你不应该在选择器中使用实例名称,'target'字段指定要触发哪个实例,使用'#selector(GameScene.updateTimer)'你自己的笔记,但只要提供了一些命名空间,甚至不需要默认的命名空间(如果你创建了一些不是SKScene的类,并且有一个updateTimer方法,它仍然会从目标中调用正确的方法 – Knight0fDragon

相关问题