此函数可用于更改给定声音的音调。声音可以是使用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);
参数 | 类型 | 描述 |
---|---|---|
index | Sound Asset or Sound Instance ID or Audio Queue ID | 要改变的声音的索引。 |
pitch | Real | 音高乘数(默认值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"中索引的声音改变所播放的音频的音调。