2012-09-20 107 views
3

我正在開發一個簡單的視頻遊戲,使用Cocos2d-x庫和Cocosdenshion AudioEngine。用CocosDenshion按順序播放聲音?

我可以使用SharedAudioEngine的playEffect方法播放單個聲音,但我試圖做的是在連續的ordeq中播放一些聲音。

但我不知道從哪裏開始。我試圖創建一個動作序列,它將使用選擇器調用該方法,但似乎不起作用。

+1

最好的方法是重寫聲音引擎。這對未來的使用會有好處。默認情況下,cocos2d-x不支持它。您可以嘗試將CCCallFunc與CCDelayTime一起使用,以便在聲音之間手動插入固定延遲,但我不建議這樣做。 –

+0

我會以每秒50次的速度啓動計時器回調。有每個樣品的樣品和時間清單。隨着時間增加,做一個簡單的「if(sample_playtime [x]> current_time)playEffect(samplename [x]);」。另外請記住,你可以在任何時候與Cocosdenshion一起播放30個樣本(我認爲它是30);並記得預加載效果你的樣品。 –

回答

0
write number of Function equal to the Number of Sound effects. 
    like this 
    Function1(){ 
     CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("Sound1.mp3"); 
    } 
    Function2{ 
    CocosDenshion::SimpleAudioEngine::sharedEngine()->stopAllEffects(); 
     CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("Sound2.mp3"); 
    } 
    Function3{ 
    CocosDenshion::SimpleAudioEngine::sharedEngine()->stopAllEffects(); 
     CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("Sound3.mp3"); 
    } 
CCSequence *seq = CCSequence::create(Func1,func2,func3,NULL); 
CCRepeatForever *repeat = CCRepeatForever::create(seq); 
this->runAction(repeat);