繁体   English   中英

Swift SpriteKit 如何在完全播放音频后暂停场景

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM