【问题标题】:ObjectAL slow motion effect in cocos2dcocos2d中的ObjectAL慢动作效果
【发布时间】:2014-03-15 16:16:27
【问题描述】:

如何为我的游戏中所有当前播放的声音和音乐创建慢动作效果?我正在使用 cocos2d v2.1 和 ObjectAL。

我可以为调度程序设置时间刻度,但我如何才能一起为声音设置呢?

【问题讨论】:

    标签: cocos2d-iphone scheduler objectal


    【解决方案1】:

    保留对每个声音和背景输出的CDSoundSource 的引用:

    CDSoundSource *bgMusic = [[SimpleAudioEngine sharedEngine]soundSourceForFile:@"mysong1.mp3"];
    
    [mySoundArray addObject:bgMusic];
    

    然后创建一个方法以按预定时间间隔降低所有引用的音高:

    -(void)testUpdate:(ccTime)dt
    {
        float myRampVal = 0.05f;
        float finalPitch = 0.5f;
    
        for(CDSoundSource *sound in mySoundArray)
        {
            sound.pitch -= myRampVal;
    
            if(sound.pitch < finalPitch)
            {
                 sound.pitch = finalPitch;
            }
        }
    }
    

    当您想降低音调时,通过调用以下命令来安排:

    [self schedule:@selector(audioDownRamp:) interval:0.1f];
    

    【讨论】:

    • 我想过这样的解决方案,但它也需要使用 ObjectAL 而不是 simpleaudio。您提供的解决方案的问题是,当当前播放或可能没有播放很多短声音时..我不知道,因为它们是动态创建的。我正在使用这种方法播放声音”[[OALSimpleAudio sharedInstance] playEffect : effect volume: gain pitch: 1.0f pan: pan loop: NO];
    猜你喜欢
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    相关资源
    最近更新 更多