【问题标题】:Give 300ms delay between coin, kill and power up sounds在投币、杀戮和通电声音之间有 300 毫秒的延迟
【发布时间】: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;
}

有人知道这怎么可能吗?

【问题讨论】:

标签: audio cocos2d-x


【解决方案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

【讨论】:

    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多