2014-09-02 46 views
2

我正在製作有硬幣,電源UPS和死亡聲音的遊戲。通常的遊戲。我的音響工程師告訴我,爲了使聲音聽起來不錯,我需要在所有聲音之間有300毫秒的延遲,以便它們不會彼此重疊並使聲音更響。例如,如果您在300毫秒內拾取了多個硬幣,我不想爲所有這些硬幣播放聲音。硬幣之間延遲300毫秒,殺死聲音和通電

這是我如何玩隨機死亡聲音。但是,如何添加延遲?

int random = rand() % 4; 

switch (random) { 
    case 0: 
     CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect(enemyDeathSoundName); 
     break; 
    case 1: 
     CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect(enemyDeathSoundName2); 
     break; 
    case 2: 
     CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect(enemyDeathSoundName3); 
     break; 
    case 3: 
     CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect(enemyDeathSoundName4); 
     break; 

    default: 
     break; 
} 

有沒有人有這樣的想法?

+0

這可能會幫助:http://stackoverflow.com/questions/14987061/playing-sounds-in-sequence -with-simpleaudioengine – Patrick 2014-09-02 00:44:32

+0

@Patrick我正在使用'cocos2d-x,所以我沒有那些'Objective-C'方法可用。 – 2014-09-02 02:36:46

回答

0

使用一些現有節點,並播放延遲時間操作。像

node->runAction(Sequence.create(DelayTime.create(0.5), CallFunc.create(playSound))); 

然後播放功能playSound中的聲音。

這是一個技巧,如果你沒有更好的選擇

+0

但是,如果兩個人在同一時間得到提升,會有幫助嗎?他們仍然會互相打球 – 2014-09-02 21:15:36