当按下暂停按钮时,我需要知道如何停止或暂停正在为我的游戏播放主题曲的SKAction。我正在使用的代码是为了在按下按钮时删除操作,但它不起作用。这段代码在我的GameScene类中。
func startGameMusic() {
runAction (SKAction.playSoundFileNamed("theme.mp3", waitForCompletion: true), withKey: "themeSong")
}
func stopGameMusic() {
self.removeActionForKey ("themeSong")
}
在GameViewController类中按下暂停按钮时,将调用stopGameMusic函数。
@IBAction func didPause(sender: UIButton) {
if self.scene.paused == false{
self.scene.stopTicking()
self.scene.paused = true
self.scene.stopGameMusic()
}
}
或:
@IBAction func didPause(sender: UIButton) {
if self.scene.paused == false{
self.scene.stopTicking()
self.scene.paused = true
self.scene.removeActionForKey("themeSong")
}
}
答案 0 :(得分:0)
我自己刚刚完成了暂停按钮的编码;看起来像Swiftris演示。我是从视图控制器而不是场景中完成的。一次播放的声音在视图控制器中编码,就像游戏一样,为什么不将它们全部保存在一个位置?我添加了几行代码到音频:
import AVFoundation
然后在类函数内...
var backgroundAudio = AVPlayer(URL:NSURL(fileURLWithPath:NSBundle.mainBundle().pathForResource("theme",ofType:"mp3")!))
var gameStatus:Bool = true
然后在我的IBAction函数内部链接到暂停按钮......
if(gameStatus == true {
scene.stopTicking()
backgroundAudio.pause()
gameStatus = false
else {
scene.startTicking()
backgroundAudio.play()
gameStatus = true
}
解释:AVFoundation为您提供了大量的音频/视觉工具 gameStatus变量让我知道它是否暂停。 true = on 如果按下并暂停,则场景退出滴答声,音频暂停,并且gameStatus将关闭。 如果游戏状态为false,则按钮会激活场景计时器并从中断处拾取音频。然后,当游戏恢复时,gameStatus设置为true。没有添加主题曲的永久运行功能。