您好,登錄后才能下訂單哦!
最近在使用COCOSTUDIO 1.3開發時,遇到如題所示的疑惑--在游戲中想念場景切換時出現背景聲音播放兩聲就沒有了(不是不播放,只是播放一少部分!)。
后來跟蹤發現原因在于(至少我的情況如此),我在場景的onExit方法中每次都調用了SceneReader::purge()。而這個方法實現代碼是:
void SceneReader::purge() { cocos2d::extension::DictionaryHelper::shareHelper()->purgeDictionaryHelper(); TriggerMng::getInstance()->destroyInstance(); _pfnSelector = NULL; _pListener = NULL; CocosDenshion::SimpleAudioEngine::sharedEngine()->end(); CC_SAFE_DELETE(_sharedReader); }
大伙看清上面的第7行了吧,就是它。每次在調用purge方法時停止了系統聲音的播放。
找到了原因,就不再調用了嗎?情況不一定。現在,我的幾個場景使用了UI編輯器設計的,即我沒有使用場景編輯器設計,所以我在這幾個場景間切換時(場景的onExit方法中)不需要調用SceneReader::purge()(只需要使用GUIReader::purge())。于是,我去掉這一調用就OK了。
但,另外一種可能的現實是,如果是多個使用場景編輯器設計的場景間切換時該怎么操作呢?我的辦法是:去掉轉場切換動畫,繼續使用SceneReader::purge()。因為去掉轉場切換調用,則想念兩個場景的方法調用是:firstScene::onExit()----->secondScene::onEnter()。
我的背景聲音沒有加入到場景編輯器中,而是使用cocos2d-x方法直接編碼方式調用的。
另外,本文只是大致給出了CocoStudio開發過程中背景音樂播放兩秒就沒聲音的問題。但是,我只是在win32下這樣操作的,在Android,iOS等環境下沒有實際測試過。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。