3

我目前正在制作一款受吉他英雄和 Frets on Fire 启发的游戏,到目前为止一切进展顺利 - 我编写了一个脚本,可以将反馈编辑器生成的 .chart 文件解析为可用数据。

我担心的是我将如何确保时间正确_(我将不得不将这些节拍值转换为毫秒)_?我正在解析的文件包含这些值;

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

其中第一个整数是音符应该出现的拍子,N 是音符是否是锤子,然后是音品 ID_(绿色或红色等)_和音符的长度,再次以拍子为单位。

我担心如果突然出现 FPS 延迟峰值,歌曲很容易不同步,有什么方法可以防止它不同步?

我试图寻找资源来弄清楚他们如何确保笔记上的时间是正确的,但我似乎找不到任何有用的东西。

4

1 回答 1

1

这是一个难题,因为它取决于您的音频播放器 API。为了让它正常工作,你需要在你的播放器中有一个函数来返回当前的播放位置。假设您的播放器 API 有一种以毫秒为单位获取位置的方法。

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

于 2015-06-10T05:45:20.503 回答