cocos2d-x遊戲中音樂音效的處理
[i][b]本文為firedragonpzy原創,轉載務必在明顯處註明:
轉載自【Softeware MyZone】原文連結: http://www.firedragonpzy.com.cn/index.php/archives/905[/b][/i]
有關cocos2d-x遊戲中音樂音效的處理一般可選兩種方式:第一種,在沒有進度處理的情況下,最好將音樂音效的狀態設定為三種,開狀態,關狀態,未初始化狀態,因為得判斷是否首次進入場景,然後進行處理。第二種,有了進度的情況下,設定一種即可。
接下來分別說下兩種的設定,關於第一種,你可以講狀態設定為三個值,0,1,2等等,但是我是個比較懶惰的人,所以我設定了兩個值,bool型,true或false。這是本文的精華,大家注意哦。
首先,大家先看看CCUserDefault的標頭檔案,如下:
如果沒有設定的bool型為false,所以我講未初始化和開狀態都設定為false,而關狀態設定為true。
關於第二種,設定了進度,即可在進度處設定音樂音效的開關,如下程式碼:
這只是音樂音效開關的設定,但是我還遇到了一個比較扯淡的問題,我在遊戲音樂設定介面,將音樂關了,按Home鍵退出,再次進入的時候音樂竟然是開啟的,而我的音樂按鈕是關閉的。音樂按鈕關閉是應該的,但是音樂開啟確實不對的。在退出之前我明明是將音樂關掉的啊!
若你也有此疑問,那就接著往下看。
相信很多朋友們都很少關注AppDelegate.cpp吧。其實我也關注很少,偶然發現裡面有這段程式碼,如下:
當然我貼出來的是我修改後的程式碼,When comes a phone call,it's be invoked too這就是按了home鍵,// this function will be called when the app is active again再次進入的時候,相信到這裡大家就應該很明白了吧!
提醒:(1)在使用CCUserDefault的時候注意狀態值得設定,是設定兩個還是三個
(2)注意AppDelegate裡面的applicationDidEnterBackground()和applicationWillEnterForeground()方法,我現在知道的就是音樂要在這裡處理下,別的沒有必要,要是有別的需要處理,歡迎大家評論指教……
今天就先到這裡吧,呼呼……
轉載自【Softeware MyZone】原文連結: http://www.firedragonpzy.com.cn/index.php/archives/905[/b][/i]
有關cocos2d-x遊戲中音樂音效的處理一般可選兩種方式:第一種,在沒有進度處理的情況下,最好將音樂音效的狀態設定為三種,開狀態,關狀態,未初始化狀態,因為得判斷是否首次進入場景,然後進行處理。第二種,有了進度的情況下,設定一種即可。
接下來分別說下兩種的設定,關於第一種,你可以講狀態設定為三個值,0,1,2等等,但是我是個比較懶惰的人,所以我設定了兩個值,bool型,true或false。這是本文的精華,大家注意哦。
首先,大家先看看CCUserDefault的標頭檔案,如下:
/**
@brief Get bool value by key, if the key doesn't exist, a default value will return.
You can set the default value, or it is false.
*/
bool getBoolForKey(const char* pKey, bool defaultValue = false);
/**
@brief Get integer value by key, if the key doesn't exist, a default value will return.
You can set the default value, or it is 0.
*/
int getIntegerForKey(const char* pKey, int defaultValue = 0);
/**
@brief Get float value by key, if the key doesn't exist, a default value will return.
You can set the default value, or it is 0.0f.
*/
float getFloatForKey(const char* pKey, float defaultValue=0.0f);
/**
@brief Get double value by key, if the key doesn't exist, a default value will return.
You can set the default value, or it is 0.0.
*/
double getDoubleForKey(const char* pKey, double defaultValue=0.0);
/**
@brief Get string value by key, if the key doesn't exist, a default value will return.
You can set the default value, or it is "".
*/
std::string getStringForKey(const char* pKey, const std::string & defaultValue = "");
如果沒有設定的bool型為false,所以我講未初始化和開狀態都設定為false,而關狀態設定為true。
關於第二種,設定了進度,即可在進度處設定音樂音效的開關,如下程式碼:
CCUserDefault *userDefault = CCUserDefault::sharedUserDefault();
if (!userDefault->getIntegerForKey(gcCURPROGRESSMARK))
{
userDefault->setIntegerForKey(gcCURPROGRESSMARK, nBLOOMINGDALEFIRST );
userDefault->setIntegerForKey(gcHASICELOTUS,0);
userDefault->setIntegerForKey(gcHASCRYSTAL,0);
userDefault->setIntegerForKey(gcHASWINDBELL,0);
userDefault->setBoolForKey( gcMUSICSTATE, true );
userDefault->setBoolForKey( gcEFFECTSTATE, true );
}
這只是音樂音效開關的設定,但是我還遇到了一個比較扯淡的問題,我在遊戲音樂設定介面,將音樂關了,按Home鍵退出,再次進入的時候音樂竟然是開啟的,而我的音樂按鈕是關閉的。音樂按鈕關閉是應該的,但是音樂開啟確實不對的。在退出之前我明明是將音樂關掉的啊!
若你也有此疑問,那就接著往下看。
相信很多朋友們都很少關注AppDelegate.cpp吧。其實我也關注很少,偶然發現裡面有這段程式碼,如下:
// This function will be called when the app is inactive. When comes a phone call,it's be invoked too
void AppDelegate::applicationDidEnterBackground()
{
CCDirector::sharedDirector()->pause();
if ( MusicManager::getMusicState() )
{
SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
}
else
{
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}
}
// this function will be called when the app is active again
void AppDelegate::applicationWillEnterForeground()
{
CCDirector::sharedDirector()->resume();
if ( MusicManager::getMusicState() )
{
SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
}
else
{
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}
}
當然我貼出來的是我修改後的程式碼,When comes a phone call,it's be invoked too這就是按了home鍵,// this function will be called when the app is active again再次進入的時候,相信到這裡大家就應該很明白了吧!
提醒:(1)在使用CCUserDefault的時候注意狀態值得設定,是設定兩個還是三個
(2)注意AppDelegate裡面的applicationDidEnterBackground()和applicationWillEnterForeground()方法,我現在知道的就是音樂要在這裡處理下,別的沒有必要,要是有別的需要處理,歡迎大家評論指教……
今天就先到這裡吧,呼呼……
相關文章
- 遊戲音樂與音效的播放 (轉)遊戲
- 遊戲基礎知識——音效和音樂的作用遊戲
- 影響遊戲玩家沉浸感的因素——背景音樂&音效遊戲
- Android中音樂檔案的資訊詳解Android
- 遊戲音效的魅力遊戲
- 一文帶你實現遊戲中的音樂、音效設定遊戲
- Luminate:2024年年中音樂報告
- cocos2d-x畫素級觸控處理
- js播放背景音樂失敗處理JS
- 解密《Unheard-疑案追聲》中的音效(音樂)製作解密
- 析電子遊戲《空洞騎士》場景切換時的音樂音響處理遊戲
- 遊戲音訊工作室SIDE收購Vibe Avenue,擴張音樂音效業務遊戲音訊IDE
- 如何低成本製作遊戲音效遊戲
- 探討遊戲反饋的處理方法遊戲
- 製作遊戲的遊戲:創作樂趣的樂趣遊戲
- 音樂訊號分析演算法的樂理簡說(非音樂專業的樂理)演算法
- cocos2d-x遊戲引擎遊戲引擎
- 戴上這款Versafit耳機 騎行中音樂頭盔和安全都有了
- ios平臺cocos2d-x播放音訊、視訊、音效的Demo(支援網路視訊)iOS音訊
- 【Fungus筆記】No.5:設定 Music(音樂) 和 Sound(音效)筆記
- Unity3D音樂音效研究-MIDI與波表Unity3D
- 【譯】闖入遊戲開發 #6:音效遊戲開發
- 開發者談音效在遊戲中的8種基本應用遊戲
- 揭祕電子遊戲背後音效製作的故事遊戲
- 遊戲場景渲染中的PostProcessing(後處理)遊戲
- 遊戲開發中的多語言處理遊戲開發
- Foobar2000之處理無損音樂格式
- 移植一個cocos2d-x遊戲遊戲
- 多對一處理 和一對多處理的處理
- 遊戲設計之-排行榜處理遊戲設計
- 網路遊戲資料傳輸:粘包的處理遊戲
- usb音效卡win10顯示驅動錯誤如何修復_win10系統usb音效卡驅動錯誤處理方法Win10
- 遊戲音樂與影視音樂的異同遊戲
- 如何進行遊戲陪玩系統原始碼中音視訊的自動化測試?遊戲原始碼
- 緋雨音樂獲千萬融資,這家只想服務遊戲的音樂公司,有何“另類”之處?遊戲
- 即時通訊中音影片同步的實現
- 處理百萬級以上的資料處理
- 優質音效設計能夠顯著提高遊戲的沉浸性遊戲