我试图停止SKAction,每当我按下一个按钮(在背景上的不同位置随机生成)时我会播放声音,但我希望能够通过调用动作来做到这一点。我已经尝试了大约2个小时,但绝对没有成功。我正在尝试停止操作的代码如下:
let clickSound = SKAction.playSoundFileNamed("Click.wav", waitForCompletion: false)
//sound action
let playCorrectSoundEffect0 = SKAction.playSoundFileNamed("Correct0.wav", waitForCompletion: false)
//where im tying to create an action to stop the sound file above from playing
let stopCorrectSoundEffect0 =
let playCorrectSoundEffect1 = SKAction.playSoundFileNamed("Correct1.wav", waitForCompletion: false)
let playCorrectSoundEffect2 = SKAction.playSoundFileNamed("Correct2.wav", waitForCompletion: false)
let endSoundEffect = SKAction.playSoundFileNamed("GameOverSound", waitForCompletion: false)
谢谢,如果你能解释一下你是怎么做到的,那就太棒了!
答案 0 :(得分:0)
我刚刚通过制作一个if语句来解决这个问题,如果分数超过某一点,它将停止所有动作,然后播放想要的声音。它看起来像这样:
if scoreNumber >= 10 {
removeAllActions()
self.run(playCorrectSoundEffect1)
}
如有任何问题,请问我!
答案 1 :(得分:0)
对于实际的Swift 3,我的建议不做改变,就是选择AVAudioPlayer
来制作游戏中的声音:
let path = Bundle.main.path(forResource: "sound.wav", ofType:nil)!
let url = URL(fileURLWithPath: path)
do {
let sound = try AVAudioPlayer(contentsOf: url)
clickSound = sound
sound.play()
} catch {
// couldn't load file
}
如果你想停止声音,你应该使用它的stop()
方法。但是,如果您尝试停止不存在的声音,您的应用会崩溃,因此最好首先检查它是否存在
if clickSound != nil {
clickSound.stop()
clickSound = nil
}