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