2 回答

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊
你的問(wèn)題是你使用了兩個(gè) if 語(yǔ)句:
if(parent.getSound()) parent.pauseBackMusic();
if(!parent.getSound()) parent.playBacMusic();
所以第一條語(yǔ)句是正確的,因?yàn)閕sSound = true
然后你pauseBackMusic()在你設(shè)置的這個(gè)方法中調(diào)用方法isSound = false
然后你的下一個(gè) if 語(yǔ)句測(cè)試:!parent.getSound()這也是真的,因?yàn)椋篿sSound = false和方法playBacMusic()集isSound = true
下次單擊時(shí)它會(huì)從頭開(kāi)始。
改用 else if 語(yǔ)句:
if(parent.getSound()) parent.pauseBackMusic();
else if(!parent.getSound()) parent.playBacMusic();
所以如果parent.getSound()是真的 else if 語(yǔ)句將被跳過(guò)并且isSound仍然是假的。并且在下一次單擊時(shí),只有 else if 語(yǔ)句為真,音樂(lè)將重新打開(kāi)。
或者在這個(gè)例子中,你可以只使用 else 來(lái)簡(jiǎn)化:
if(parent.getSound()) parent.pauseBackMusic();
else parent.playBacMusic();

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以使用InputProcesser來(lái)監(jiān)聽(tīng)觸摸事件。使用它,您可以收聽(tīng)僅在用戶(hù)按下您的按鈕時(shí)調(diào)用一次的觸摸事件,這與您的示例中以恒定循環(huán)運(yùn)行不同。
您可以使用touchDown方法來(lái)做到這一點(diǎn)
添加回答
舉報(bào)