audio_sound_pitch

此函数可用于更改给定声音的音调。声音可以是使用audio_play_sound()audio_play_sound_at()函数时存储在变量中的正在播放的单个声音的索引引用的声音,也可以是来自资源浏览器的实际声音资源。如果它是播放声音的索引,则只更改该实例,但是,当使用资源浏览器中的声音资源时,正在播放的声音资源的所有实例将改变。

音高参数为音高乘数,因为输入值将当前音高乘以该值,因此1的默认值为无音高变化,而小于1的值将降低音高,大于1将升高音高。最好对此函数使用小增量,因为任何小于0或大于5的值无论如何都听不见。值得注意的是,允许的总螺距变化被箝位为(1/256)- 256个八度,因此超过或低于该值的任何值都不会被记录。

注意以上给出的箝位值是GameMaker尝试将范围箝位到的值,但并非所有目标平台都保证该值。 例如,iOS 箝位到(1/256)- 8,所以您可能需要在每个目标平台上进行实验,并拥有不同版本的声音资源,如果您需要更高或更低的倍频程值,则每个版本都预移位。

重要由于音调参数是音高乘数,如果声音在使用audio_play_sound_on的发射器上播放,则声音实例的音调将乘以声音资源的音调,以及声音发射器的音调。 最后听到的音调是声音的原始音调乘以三个音调乘数:

final_pitch=原始音高*声音资源音调*发射器音高*声音实例音调。

默认情况下,三个音调乘数等于1,以便听到的最终音调等于原始声音的音调。

语法:

audio_sound_pitch(index, pitch);

参数类型描述
indexSound Asset or Sound Instance ID or Audio Queue ID要改变的声音的索引。
pitchReal音高乘数(默认值1)。

 

返回:

N/A

 

例子:

var s_engine = audio_play_sound(snd_CarEngine, 10, false);
switch (gear)
{
    case 1: audio_sound_pitch(s_engine, 0.8); break;
    case 2: audio_sound_pitch(s_engine, 0.9); break;
    case 3: audio_sound_pitch(s_engine, 0.95); break;
    case 4: audio_sound_pitch(s_engine, 1); break;
    case 5: audio_sound_pitch(s_engine, 1.2); break;
}

上述代码将基于可变"档位"的值,从变量"s_engine"中索引的声音改变所播放的音频的音调。