[英]Swift SpriteKit how to pause the scene after audio is played completely
在我的 Swift 文件中,当触发 func gameOver() 时,我将暂停场景。
func gameOver() {
//TODO: play audio explode.mp3
self.run(SKAction.playSoundFileNamed("explode", waitForCompletion: true))
//Pause game
scene?.isPaused = true
}
我希望先播放音频,然后暂停游戏。 问题是游戏会先暂停,当我重新启动游戏时,会播放音频。
waitForCompletion
意味着动作持续时间将与音频文件持续时间相同,但只run
计划动作,它不会等待它们完成。 您可以添加一个完成处理程序,该处理程序将在操作完成后运行。
self.run(SKAction.playSoundFileNamed("explode", waitForCompletion: true)) {
self.scene?.isPaused = true
}
如果您希望播放音乐但游戏暂停,则需要对游戏组件进行分层。 例如,将所有游戏组件放置在名为 gameLayer 的 sknode 上,并将所有控件放置在名为 controlsLayer 的 SKNode 层上。
现在,当您想暂停游戏时,只需调用
gameLayer.isPaused = true
现在您仍然可以在场景中播放音乐
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.