2017-05-10 1 views
1

나는 재미있는 게임을 만들고 있으며 사운드 효과 루프가 끝날 때마다이를 내 코드로 사용하고 싶습니다.루프 할 사운드 효과 코드는 무엇입니까

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    for touch in touches{ 
     let touchLocation = touch.location(in: self) 
     if atPoint(touchLocation).name == "startGame"{ 
      let gameScene = SKScene(fileNamed: "GameScene")! 
      gameScene.scaleMode = .aspectFill 
      view?.presentScene(gameScene, transition: SKTransition.doorsOpenHorizontal(withDuration: TimeInterval(2))) 
      self.run(SKAction.playSoundFileNamed("mainmenu.wav", waitForCompletion: false)) 

답변

1

SKActions를 사용하여 배경 음악을 재생할 수 없습니다. 대신 사용 AVAudioPlayer :

if let filePath = Bundle.main.path(forResource: "mainmenu", ofType: "wav") { 
    let url = URL(fileURLWithPath: filePath) 
    do { 
     let player = try AVAudioPlayer(contentsOf: url) 
     player.numberOfLoops = -1 
     player.play() 
    } catch { 
     // catch error if necessary 
    } 
} 

원래의 게시물 : https://stackoverflow.com/a/23268462/6846532

1
gamescene에서

, 또는 다른 어떤 장면이

let music = SKAudioNode(fileNamed: "backgroundmusic.mp3") 

    music.autoplayLooped = true 
    addChild(music) 
0

는 개인적으로 내가 AVAudioPlayer와 함께 갈 것 사용 루프 음악을 원하거나 SKAudioNodeplaySoundFileNamed이 많은 SpriteKit 릴리스에서 버그가있는 것으로 바뀌 었으므로 작업을 수행하는 방법을 알려 드리겠습니다.

import SpriteKit 

class GameScene: SKScene { 

    override func didMove(to view: SKView) { 

     run(SKAction.repeatForever(SKAction.playSoundFileNamed("sound", waitForCompletion: true))) 
    } 
}