Guitar Hero式的定时机制

我目前正在制作一款受 Guitar Hero 和 Frets on Fire 启发的游戏,目前一切都进行得很顺利 - 我已经编写了一个脚本,可以解析 FeedBack Editor 生成的 .chart 文件并将其转换成可用数据。

我的问题是,我该如何确保时间正确(我将不得不将这些拍子值转换为毫秒)?我解析的文件包含此类值:

0 = N 1 120
120 = N 2 120
240 = N 3 576

其中第一个整数是音符应该发生的拍子数,N 是该音符是否为滑弦音符,然后是品位 ID(绿色或红色等)和音符的长度,同样以拍子为单位。

我担心如果出现突然的 FPS 卡顿,歌曲将很容易失去同步,有什么方法可以防止它失去同步?

我试图找到来源以弄清如何确保音符的时间正确,但我似乎找不到任何有用的东西。

点赞
用户2765603
用户2765603

这是一个难题,因为它取决于您的音频播放器 API。要使其正常工作,您需要在播放器中拥有一个函数,返回当前播放位置。假设您的播放器 API 有一个获取毫秒级别位置的方法。

我会在本地代码中进行_同步_,因为如果您在lua中使用该值,垃圾回收可能会使您失去同步。只需使用lua解析时序并为本地代码设置结构数组(或类似的东西)。

2015-06-10 05:45:20