簡體   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