在投币、杀戮和通电声音之间有 300 毫秒的延迟
Posted
技术标签:
【中文标题】在投币、杀戮和通电声音之间有 300 毫秒的延迟【英文标题】:Give 300ms delay between coin, kill and power up sounds 【发布时间】:2014-09-02 00:20:22 【问题描述】:我正在开发一款包含硬币、能量提升和死亡音效的游戏。游戏的常态。我的音响工程师告诉我,为了让它听起来不错,我需要在所有声音之间有 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;
有人知道这怎么可能吗?
【问题讨论】:
这可能会有所帮助:***.com/questions/14987061/… @Patrick 我正在使用cocos2d-x, so I don't have those
Objective-C` 可用的方法。
【参考方案1】:
使用一些现有节点,并播放延迟时间动作。喜欢
node->runAction(Sequence.create(DelayTime.create(0.5), CallFunc.create(playSound)));
然后在函数 playSound 中播放声音。
如果你没有更好的选择,这是一个技巧
【讨论】:
但是如果两个同时被提示会有帮助吗?他们仍然会在彼此之上玩耍......【参考方案2】:您可以在数组中添加事件(作为动作)并将动作作为序列运行,例如,您为数组中的一个敌人添加事件,如果您杀死 3 个敌人,则在数组中添加多个动作,并使用 DelayTime 和在序列中运行。
您可以在此处查看如何添加动作数组(向量):
http://www.cocos2d-x.org/reference/native-cpp/V3.0rc1/d7/d30/classcocos2d_1_1_sequence.html
【讨论】:
以上是关于在投币、杀戮和通电声音之间有 300 毫秒的延迟的主要内容,如果未能解决你的问题,请参考以下文章
解决在移动端上 click事件延迟300 毫秒的问题 fastclick.js