func gameOver() {
UserDefaults.standard.set(score, forKey: "recentScore")
if score > UserDefaults.standard.integer(forKey: "highscore") {
UserDefaults.standard.set(score, forKey: "highscore")
}
let menuScene = MenuScene(size: view!.bounds.size)
view!.presentScene(menuScene)
}
brain.exe
已停止工作,为什么声音不播放?我已经在项目中实现了声音,但是程序没有播放任何声音,只是显示游戏为什么会这样?
soundWIRDSPIELEN += 1
if soundWIRDSPIELEN == 1 {
run(SKAction.playSoundFileNamed("lose", waitForCompletion: true))
}
soundWIRDSPIELEN -= 1
if soundWIRDSPIELEN == 0 {
gameOver()
}
答案 0 :(得分:1)
这是一件事,我确定你没有。
您告诉编译器运行lose sound
,恰好在0.001秒后,编译器将调用gameOver
场景。
换句话说,编译器会播放声音,但用户无法听到声音,因为您在gameOver上退出了场景。
您应该告诉gameOver函数至少等待0.5秒,以便用户听到声音。另外,请使用声音文件扩展名。
run(SKAction.playSoundFileNamed("lose.mp3", waitForCompletion: false))
run(SKAction.sequence([SKAction.wait(forDuration: 1.0), SKAction.run(gameOver)]))