关于COCOS2D-X 中的音乐与音效应用的备注
??? UI在游戲中占有很重要的地位,但吸引玩家的除了這些看得到的界面和動畫之外,游戲在后臺中播放的背景音樂及游戲中打擊、動作等音效的配合則會讓游戲更受玩家的喜愛。在Cocos2D-X中也為我們封裝了一個跨平臺的、播放音頻相關的類SimpleAudioEngine。
?
?
一、音樂與音效
?
????由于Cocos2D-X是跨平臺的引擎,所以如果大家想通過一套代碼多平臺通用播放音樂與音效,可以通過Cocos2D-X定義的宏CC_TARGET_PLATFORM平臺變量來區別播放的音頻格式。比如,Android只支持ogg的音頻格式。
??? SimpleAudioEngine的使用比較簡單,此類不需要創建,只需要調用其中的播放、暫停、重復播放等與音樂、音效相關的函數即可。
?
?
二、音樂與音效的相關函數
?
1、音樂相關的函數
?
<1> preloadBackgroundMusic:(NSString *) filePath
作用:預加載背景音樂文件。
參數:音樂文件的相對路經。
?
<2> playBackgroundMusic:(NSString *) filePath loop:(BOOL) loop
作用:播放背景音樂文件。
參數1:音樂文件的相對路經。
參數2:是否重復播放。
?
<3> stopBackgroundMusic()
作用:停止背景音樂。
?
<4> pauseBackgroundMusic()
作用:暫停背景音樂。
?
<5> resumeBackgroundMusic()
作用:繼續播放背景音樂。
?
<6> rewindBackgroundMusic()
作用:倒帶到音樂剛開始。
?
<7> isBackgroundMusicPlaying()
作用:獲取當前背景音樂是否正在播放中。
?
<8> float?getBackgroundMusicVolume()
作用:獲取當前背景音樂的音量。
返回值:其音量范圍[0.0,1.0]。
?
<9> setBackgroundMusicVolume(float volume)
作用:設置當前背景音樂的音量。
返回值:其音量范圍[0.0,1.0]。
?
2、音效相關的函數
?
<1> preloadEffect(const char * pszFilePath)
作用:預設加載音效。
參數:音效文件的相對路經。
?
<2> unloadEffect(const char * pszFilePath)
作用:釋放音效文件。
參數:音效文件的相對路經。
?
<3>?unsigned int?preloadEffect(const char * pszFilePath,bool bLoop)
作用:播放音效文件。
參數1:音效文件的相對路經。
參數2:是否重復播放。
返回值:為播放的音效生成ID。
?
<4> stopEffect(unsigned int nSoundId)
作用:停止音效播放。
參數:需要停止音效的ID。
?
<5> pauseEffect(unsigned int nSoundId)
作用:暫停音效播放。
參數:需要暫停音效的ID。
?
<6> resumeEffect(unsigned int nSoundId)
作用:繼續音效播放。
參數:需要繼續播放音效的ID。
?
<7> float getEffectsVolume(unsigned int nSoundId)
作用:獲取音效音量。
參數:音效音量范圍[0.0,1.0]。
?
<8> setEffectsVolume(float volume)
作用:設置音效音量。
參數:音效音量范圍[0.0,1.0]。
?
<9> pauseAllEffects()
作用:暫停所有音效。
?
<10> resumeAllEffects()
作用:繼續播放所有音效。
?
<11> stopAllEffects()
作用:停止所有音效。
三、音樂數據的預加載
? 一般在類似于LoadingScene等起過渡功能的場景中提前加載真正的使用場景所使用的聲音數據。當然,一次加載所有聲效,還是先加載部分,還要根據具體情況而定。
四、音樂數據卸載
什么時機卸載音樂數據也是一個值得研究的問題。在某些時機可能通過現場分析來調用stopEffect這樣的函數把確實不需要的部分聲效卸載掉。
總結
以上是生活随笔為你收集整理的关于COCOS2D-X 中的音乐与音效应用的备注的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Expression Template(
- 下一篇: cocos2dx基础篇(26)——场景切