2017-05-13 3 views
0

Hier ist der Code, der ausgeführt wird, wenn der Neustart-Button angetippt wird. Das Spiel setzt die Punkte, Spiele und Interstitial-Anzeigen zurück und kehrt dann zur Spielszene zurück.Szenen nach Interstitial ändern (SpriteKit)

Momentan wartet es nicht darauf, dass das Interstitial beendet wird, bevor die Spielszene geändert wird.

+0

Ich versuchte 'interstitialDidDismissScreen (ad: GADInterstitial)' aber es hat nicht funktioniert. Obwohl ich nicht sicher bin, ob ich das Richtige zwischen die Klammern setze. – Trlewi

+0

Was Sie beschreiben, ist, was Ihr Code derzeit tut. Sie können also die Szene benachrichtigen, wenn die Anzeige beendet/beendet ist. Dazu können Sie eine Benachrichtigung posten und eine Szene als Beobachter dieser Benachrichtigung hinzufügen (und den entsprechenden Code entsprechend ausführen). – Whirlwind

+0

Haben Sie einen Tutorial-Link, auf den Sie mich verweisen könnten? – Trlewi

Antwort

0

Also war ich in der Lage, eine Wartefunktion zu integrieren, so dass die Anzeige auf dem Bildschirm angezeigt wird, bevor die Szene sogar übergeht.

func delay(_ delay:Double, closure:@escaping()->()) { 
     let when = DispatchTime.now() + delay 
     DispatchQueue.main.asyncAfter(deadline: when, execute: closure) 
} 

Und dann platziert Szene-Wechsler innerhalb der Verzögerungsfunktion wie so

delay(2.0) { 
    self.changeScene() 
} 

Die 2.0 die Zeit in Sekunden ist so wird dies zu sagen, dass der Code 2 Sekunden warten und dann die Änderung Szenenfunktion ausführen . Wenn die Anzeige beendet wird, wird die Szene jetzt geändert.

Verwandte Themen