XNA-加入音效

XNA-加入音效

我們可以使用XACT來加入音效,xna3.0附的工具裡就有XACT2.0可以使用,我們先打開XACT,然後新增專案,

必須先決定專案存放的位置,之後我們在Wave Banks以及Sound Banks按右鍵選新增,

如此就會有兩個視窗開出,一個用來放我們的音效檔,之後將wav音效檔拉到Wave Banks,再拉到Sound Banks上半部,再拉到下半部。

image

 

當你點選sound name那欄的檔案時,左下角的Volume可以設定音量,Looping是設定程式執行一次播放的動作時,音效會撥幾次。

點選cue name那欄的檔案,左下角有個Limit Instances,是用來決定同時可以播放此音效的數量,不勾選的話就是沒有限制。

image

最後只要存檔就可以了。

然後再xna專案的Content裡加上剛剛存好的xap檔。編譯時會依據此xap檔產生三個相關的檔案,分別是Sound Bank的xsb、Wave Bank的xwb以及xgs,

程式裡比需產生三個物件:

 

AudioEngine audio = new AudioEngine(@"Content\SoundEffect.xgs");
WaveBank wave = new WaveBank(audio, @"Content\Wave Bank.xwb");
SoundBank sound = new SoundBank(audio, @"Content\Sound Bank.xsb");

然後再需要播放音效的地方,直接呼叫sound.PlayCue("alert");就可以了。

最後有一點很重要,就是必須在Update函式裡呼叫audio.Update()來釋放資源,不然記憶體會越來越大,程式效能也會被拖累。