1

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

我可以为调度程序设置时间表,但我如何才能一起为声音做到这一点?

4

1 回答 1

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];
于 2014-03-20T03:19:33.950 回答