我試圖通過檢查布爾值來確定在if語句中的狀態,通過鍵刪除SKAction。如何防止布爾值在if語句中被覆蓋?
我試圖實現的解決方案的原因是爲了讓最終用戶能夠在應用程序中將FX音效靜音。
聲明:
var mute: Bool? = false
let popAction = SKAction.playSoundFileNamed("flaps", waitForCompletion: false)
let coinAction = SKAction.playSoundFileNamed("coinSound", waitForCompletion: false)
如果語句來採取行動之前確定的值,並在那裏if語句運行,即使布爾是真實的問題可能是因爲:
if !self.mute! {
// Run when Bool is false
self.run(self.coinAction, withKey: "coinSound")
print("Bool Value: '\(self.mute)'")
}
Bool值:false
函數刪除SKAction當布爾是真實的:
func muteSound() -> Bool {
self.mute = !self.mute!
removeAction(forKey: "coinSound")
print("Bool Value: '\(self.mute)'")
return true
}
布爾值:True
運行功能:
muteSound()
注是通過一個按鈕上的主要執行此功能菜單。
希望你能花點時間看看我是否遺漏了任何東西或做了任何會導致此問題的事情。
我懷疑布爾變量是「覆蓋」的if語句。在if語句之前立即打印什麼'print(self.mute)? - 爲什麼「靜音」是可選的? –
使用兩部分的打印結果編輯帖子。 – M3o