2016-09-13 3 views
0

Я объявил задержку, и это дает мне ошибку, я пытаюсь замедлить таймер.Тип 'GameScene не имеет значения' delay '

//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

Я думаю, что вы ошибаетесь. Прежде всего, ваша задержка - это var и не функция, вторая точка, в наборе спрайтов вам следует избегать использования 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. Вам нужна функция, соответствующая этому имени. Обратите внимание, что поскольку вы использовали «GameScene», а не «gameScene», это может быть класс, и в этом случае вам понадобится «класс func», называемый задержкой. Однако, скорее всего, вы хотите, чтобы «self.delay» вызывался. то есть. один из

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

Кроме того, чего вы пытаетесь достичь с помощью «-2.0»? Вы не можете запускать таймер в прошлом - если значение по умолчанию равно 0,1, если < = 0.

+0

Вы не должны использовать имя экземпляра внутри селектора, поле 'target' указывает, какой экземпляр запускается, вы используете' #selector (GameScene.updateTimer) 'для ваша собственная личная заметка, но пространство имен по умолчанию даже не требуется, если предоставляется какое-либо пространство имен (если вы сделали какой-то другой класс, который не был SKScene, и имел метод updateTimer, он все равно вызывал бы правильный метод из целевого – Knight0fDragon