3
我正在開發一個簡單的視頻遊戲,使用Cocos2d-x庫和Cocosdenshion AudioEngine。用CocosDenshion按順序播放聲音?
我可以使用SharedAudioEngine的playEffect方法播放單個聲音,但我試圖做的是在連續的ordeq中播放一些聲音。
但我不知道從哪裏開始。我試圖創建一個動作序列,它將使用選擇器調用該方法,但似乎不起作用。
我正在開發一個簡單的視頻遊戲,使用Cocos2d-x庫和Cocosdenshion AudioEngine。用CocosDenshion按順序播放聲音?
我可以使用SharedAudioEngine的playEffect方法播放單個聲音,但我試圖做的是在連續的ordeq中播放一些聲音。
但我不知道從哪裏開始。我試圖創建一個動作序列,它將使用選擇器調用該方法,但似乎不起作用。
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);
最好的方法是重寫聲音引擎。這對未來的使用會有好處。默認情況下,cocos2d-x不支持它。您可以嘗試將CCCallFunc與CCDelayTime一起使用,以便在聲音之間手動插入固定延遲,但我不建議這樣做。 –
我會以每秒50次的速度啓動計時器回調。有每個樣品的樣品和時間清單。隨着時間增加,做一個簡單的「if(sample_playtime [x]> current_time)playEffect(samplename [x]);」。另外請記住,你可以在任何時候與Cocosdenshion一起播放30個樣本(我認爲它是30);並記得預加載效果你的樣品。 –