2015-04-15 5 views
0

У меня есть фоновая музыка и звуки в игре. Есть некоторые моменты, которые я не хочу, чтобы они исполнялись. Я используюКак остановить звук от игры в SpriteKit?

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {  
let jump = SKAction.playSoundFileNamed("Jump.wav", waitForCompletion: false) 
self.runAction(jump) 
     } 

для игры, но она по-прежнему играть каждый раз, когда я нажимаю на экран, и я не хочу, чтобы это выполнить, когда игра закончена узел уже появились, например. Apple docs говорит, что это действие не является обратимым. Так как я могу это остановить?

ответ

0

Использование SKAction для воспроизведения звука не дает вам никакого контроля после его запуска. Вместо этого я предлагаю вам использовать AVAudioPlayer, который позволяет вам прекратить играть в любое время.

+0

Спасибо, но я следил за учебником [Ray Wenderlich tutorial] (http://www.raywenderlich.com/78264/learn-to-code-ios-apps-with-swift-tutorial-5) для этого и теперь у меня проблема. У меня есть два звука - для прыжка и для кнопок. Он работает с прыжком, но когда появляется моя игра поверх фона, и я пытаюсь щелкнуть по кнопке повтора, она все равно выполняет звук перехода. Но я ясно сказал, чтобы он прекратил играть. И он падает теперь. Показывает мне сигнал: SIGABRT'. Мне нужно просто поставить 'jumpSound.stop()', когда мне не нужно играть, не так ли? – Burundanga

+0

@Burundanga - Не может помочь вам с кодом Swift. В Obj-C вы сделали бы это: [myAudioPlayer stop]; – sangony

+0

, так что в основном мне нужно остановить AudioPlayer, а не сам звук? Я посмотрел версию Obj-C swift 'stop()', и это не то, что вы написали, это '- (void) stop', поэтому я думаю о неправильном направлении – Burundanga

Смежные вопросы