我正在構建一種簡單的遊戲,它是一個紅色方塊,您可以使用箭頭鍵移動,我製作了一個完成對象,它會在您進入時進行檢測。現在,我做了這樣的事情,如果「播放器」與「完成對象」相交,它會播放聲音,但它會播放每個節拍的聲音。我嘗試了Thread.sleep()和wait(),但是這讓我的整個遊戲都處於睡眠狀態,而不僅僅是聲音延遲。我playsound方法:聲音播放之間的延遲?
public void playSound(String filename) throws IOException{
InputStream in = new FileInputStream(filename);
AudioStream as = new AudioStream(in);
AudioPlayer.player.start(as);
}
和我playerfinishing相交:
//PLAYER1 LEVEL FINISHING
if(player.getBounds().intersects(levelfinish.getBounds())){
message = "A winner is you!";
try {
playSound("D:/BadGame/Sounds/winner.wav");
} catch(Exception ex){
ex.printStackTrace();
}
}
消息只是顯示在屏幕中間一個字符串,它所有的作品,但它需要某種形式的延遲,所以聲音不會持續播放,而是每10秒鐘播放一次,或者僅當您與它交叉時播放一次。你們可以告訴我有關如何做到這一點的線索嗎?謝謝!
那麼,你的例子並不完美。它仍然會播放這首歌曲,就像我在進入另一首歌曲後相當快。我理解這段代碼,但它似乎並不奏效。 – Stan 2011-04-11 18:15:16
我應該澄清 - 如果此代碼位於每次打勾調用的函數中,您將需要創建全局變量。你需要變量不會每次都改變。 – Nate 2011-04-11 18:37:54
是的,我注意到,感謝您的幫助,它現在完美。 – Stan 2011-04-11 18:39:38