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