音乐可视化是乐曲与图像的碰撞
在GameMaker中实现音乐可视化的最佳途径是使用扩展。
我制作了一个扩展:Awesome Audio Visualization
这个扩展可以读取音乐并输出绘制可视化所需的数据。
安装完扩展以后,代码所示如下:
// - Create 事件
// 播放音乐
Sound = audio_play_sound(example_music,0,1)
// 加载音乐
DataID = mv_load(@"example_music.ogg")
// - Draw 事件
// 获取音乐位置
var nowSeconds = audio_sound_get_track_position(Sound)
// 获取音乐总长度
var totalSeconds = audio_sound_length(Sound)
// 设置 FFT_SIZE
// 这个数值越小,数据变化的越快。
var fft_size = 2048
// 获取音频可视化数据
var Data = mv_get_data(DataID,nowSeconds,totalSeconds,fft_size*2)
// 绘制数据
for(var i = 0;i < 80;i++){
var length = Data[int64(fft_size/81*i)] * 2 // 获取每一条线的长度
draw_line_width(room_width/80 * i,0,room_width/80 * i,length,5)
}
这个扩展支持你能想到的几乎所有格式:除了MP3。