2 回答

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

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