2016-09-13 2 views
0

Ich erklärte Verzögerung und es gibt mir einen Fehler, ich versuche, den Timer zu verlangsamen.Typ 'GameScene hat kein Mitglied' Verzögerung '

//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 hier ist das Bild – Bran

+0

Bitte einbeziehen der Fehler als Text hier, so dass die Frage auch dann noch nützlich ist, wenn das Bild entfernt wird. – Robert

+0

Ich denke du bist in einer falschen Art und Weise. Zunächst einmal ist Ihre Verzögerung eine var und keine Funktion, zweiter Punkt, in Sprite-Kit sollten Sie NSTimer außer NSNotification im Wartespiel zu vermeiden –

Antwort

0

der Wähler Teil eines NSTimer soll eine Funktion auszuführen, so dass Sie die Funktion dann der Timer erklären sollte außerhalb der Funktion statt innerhalb der Funktion

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) 

auch Sie platziert werden könnte genauer gesagt, wenn Sie sagen, Sie versuchen, den Timer so zu verlangsamen

+0

Wenn ich das in es setzen, hat nichts gelöst. Es hatte mir nur mehr Fehler gegeben. – Bran

+0

welche Version von swift sind Sie in 2.2 oder 3.0 derzeit –

0

Die Nachricht sagt Ihnen, dass es keinen Selektor für GameScene.delay gibt. Sie benötigen eine Funktion, die diesem Namen entspricht. Beachten Sie, dass es sich um eine Klasse handeln kann, da Sie "GameScene" anstelle von "gameScene" verwendet haben. In diesem Fall benötigen Sie eine "Klassenfunktion" namens Verzögerung. Wahrscheinlicher ist jedoch, dass "self.delay" aufgerufen werden soll. dh. eines von

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

Auch, was versuchst du mit "-2.0" zu erreichen? Sie können keinen Timer in der Vergangenheit laufen lassen - wenn der Standardwert 0,1 ist, wenn < = 0.

+0

Sie sollten nicht den Instanznamen innerhalb des Selektors verwenden, das Feld 'target' gibt an, auf welche Instanz zu feuern ist, Sie verwenden' #selector (GameScene.updateTimer) 'für Ihre eigene persönliche Notiz, aber der Standard-Namespace wird nicht einmal benötigt, solange ein Namespace bereitgestellt wird (Wenn Sie eine andere Klasse erstellt haben, die keine SKScene ist und eine updateTimer-Methode verwendet, ruft sie immer noch die richtige Methode vom Ziel auf – Knight0fDragon

Verwandte Themen