亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Libgdx 播放/暫停音樂

Libgdx 播放/暫停音樂

森林海 2021-06-14 14:15:14
我是 LibGdx 的新手,實際上我正在為 Android 設備創建一個簡單的 Libgdx 游戲。我在 LibGdx 中播放/暫停音樂時遇到問題,這里是簡化代碼。    //...        @Override    public void render(float delta) {      //...      if(inputHelper.isTouched()){            input.x = inputHelper.getScreenX();            input.y = inputHelper.getScreenY();            camera.unproject(input);                        if(soundRect.contains(input.x, input.y)){                if(parent.getSound()) parent.pauseBackMusic();                if(!parent.getSound()) parent.playBacMusic();            }        }    }  //...    public void pauseBackMusic(){        if(backMusic.isPlaying()){            backMusic.pause();            isSound = false;        }    }    public void playBackMusic(){        if(!backMusic.isPlaying()){            backMusic.play();            isSound = true;        }    }    public Boolean getSound() {        return isSound;    }正如您在代碼中看到的,當我觸摸soundRect 時,它在pauseBackMusic() 和 playBackMusic()之間循環。
查看完整描述

2 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

你的問題是你使用了兩個 if 語句:


if(parent.getSound()) parent.pauseBackMusic();

if(!parent.getSound()) parent.playBacMusic();

所以第一條語句是正確的,因為isSound = true

然后你pauseBackMusic()在你設置的這個方法中調用方法isSound = false


然后你的下一個 if 語句測試:!parent.getSound()這也是真的,因為:isSound = false和方法playBacMusic()集isSound = true


下次單擊時它會從頭開始。


改用 else if 語句:


if(parent.getSound()) parent.pauseBackMusic();

else if(!parent.getSound()) parent.playBacMusic();

所以如果parent.getSound()是真的 else if 語句將被跳過并且isSound仍然是假的。并且在下一次單擊時,只有 else if 語句為真,音樂將重新打開。


或者在這個例子中,你可以只使用 else 來簡化:


if(parent.getSound()) parent.pauseBackMusic();

else parent.playBacMusic();


查看完整回答
反對 回復 2021-06-17
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

您可以使用InputProcesser來監聽觸摸事件。使用它,您可以收聽僅在用戶按下您的按鈕時調用一次的觸摸事件,這與您的示例中以恒定循環運行不同。

您可以使用touchDown方法來做到這一點


查看完整回答
反對 回復 2021-06-17
  • 2 回答
  • 0 關注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號