在硬币,杀死和加电声音之间延迟300ms

时间:2014-09-02 00:20:22

标签: audio cocos2d-x

我正在开发一款有硬币,电源和死亡声音的游戏。通常的游戏。我的音响工程师告诉我,为了让它听起来不错,我需要在所有声音之间有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;
}

有没有人对如何做到这一点有想法?

2 个答案:

答案 0 :(得分:0)

使用一些现有节点,并播放延迟时间操作。像

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

然后在playSound中播放声音。

如果你没有更好的选择,这是一个技巧

答案 1 :(得分:0)

您可以在数组中添加事件(作为操作)并将操作作为序列运行,例如,您为阵列中的一个敌人添加事件,如果您杀死了3个敌人,则使用DelayTime在数组中添加多个操作在序列中运行。

您可以在此处查看如何添加操作数组(矢量):

http://www.cocos2d-x.org/reference/native-cpp/V3.0rc1/d7/d30/classcocos2d_1_1_sequence.html