2017-02-13 5 views
0

Also habe ich versucht, diese Audiodatei durch alle Szenen des Spiels zu spielen, aber es schneidet nach dem MenuScene ab. Ich nenne das MenuScene von GameViewControllerMusik Stoppt nach dem Szenenwechsel SKAudioNode Xcode 8

class GameViewController: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 

    if let view = self.view as! SKView? { 
     // Load the SKScene from 'MenuScene.sks' 
     if let scene = SKScene(fileNamed: "MenuScene") { 
      // Set the scale mode to scale to fit the window 

Dann in der MenuScene ich die Musik, indem Sie diese starten.

class MenuScene: SKScene { 

var starfield:SKEmitterNode! 

var newGameButtonNode:SKSpriteNode! 
var difficultyButtonNode:SKSpriteNode! 
var difficultyLabelNode:SKLabelNode! 
var backgroundMusic:SKAudioNode! 

override func didMove(to view: SKView) { 


    let backgroundMusic = SKAudioNode(fileNamed: "Snap.mp3") 
    backgroundMusic.autoplayLooped = true 
    addChild(backgroundMusic) 

Die Musik beginnt zu spielen. Dann habe ich in der touchesBegan(), wenn der GameScene-Button berührt wird, wird diese Szene geladen. Ich habe den Übergang wirklich lange gemacht, um herauszufinden, wann die Musik aufhört und den ganzen Übergang durchspielt, aber wenn die GameScene geladen ist, stoppt sie.

if nodesArray.first?.name == "newGameButton" { 

      let transition = SKTransition.fade(withDuration: 5.0) 

      run(SKAction.wait(forDuration: 5.0), completion: { 
       self.backgroundMusic = SKAudioNode(fileNamed: "Snap.mp3") 
       self.backgroundMusic.autoplayLooped = true 
       self.addChild(self.backgroundMusic) 
      }) 
      let gameScene = GameScene(size: self.size) 

      self.view!.presentScene(gameScene, transition: transition) 

Ich möchte, dass es während des Spiels und in der GameOver-Szene weiterspielt und für immer weiterläuft.

Antwort

1

Achten Sie darauf, Ihre in Haupt SKScene und

Sie können etwas tun:

self.runAction(SKAction.playSoundFileNamed("YourFileName.extension", waitForCompletion: false)) 

Repeat Musik:

SKAction.repeatForever(SKAction.playSoundFileNamed("YourFileName.extension", waitForCompletion: true)) 

Ihre Musik zu spielen halten ..

With AVFoundation

Einer von Mein Code habe ich gemacht.

+0

Wie bekomme ich es zu wiederholen, obwohl ich es versucht habe und es würde durch jede Szene aber nur einmal abspielen. – cuber

+0

Überprüfen Sie meine aktualisierte Antwort –

+0

Ich habe die Zeile, die Sie hinzugefügt haben, direkt darunter gesetzt und das Lied wurde nicht wiederholt. Ich glaube, das liegt daran, dass meine MenuScene nur zu Beginn des Spiels aufgerufen wird, aber GameScene und GameOverScene sich gegenseitig aufrufen, wenn die entsprechenden Tasten gedrückt werden. Wie kann ich es im MenuScene spielen und in den GameScene und GameOverScenes wiederholen? – cuber

Verwandte Themen