近期在洛谷上有些题要做,实验室的东西倒是可以暂时先不管了,但我决定把时间先给——制谱器!看看能不能今天冲完。
12:59 PM
发现之前没有写谱面选择,坏,应该先从谱面选择开始。
2:09 PM
谱面选择页面搓完了,尾杀开始!
这里指制谱器本体,但其实主要是 Note 的显示比较麻烦。
2:56 PM
Note 显示做好了,被 audio 的低更新频率坑了一把,而且似乎歌曲的进度记录并不是那么均匀?
3:59 PM
写好格子了,花了一些时间做细节优化。但是中午回来鞋湿了现在好冷,还是得回去换一下。
6:00 PM
继续!虽然立项被催了,但无所谓。
6:30 PM
做了些细节优化,把 chartProvider 和 levelProvider 合并了,因为选择关卡的状态是个余积类型,可能是选择了现有的关卡,也可能是新建了一个关卡,新建关卡上传之后就会转换为现有的关卡,逻辑比较复杂,分开管理不好。同时,把 offset 和时间都改成了双精度浮点数,避免傻呗精度损失。
6:54 PM
打谱功能写好了,但还有点傻呗,focus 不对,offset 也有问题。focus 可以使用 focusNode.requestFocus() 解决,在抢 focus 的东西失去焦点时运用即可。offset 又是经典搞混 samples 和 ms, 太坏了,之前为什么要用 samples 做单位呢??
7:21 PM
制谱器写好了!做点小优化。
发现 server 的 route 没有共同根节点,这下服务器分流难顶了。
看我大型分类讨论!
1 | location ~ ^/(songs|charts|bpm|test|cal|sync)/ { |
7:32 PM
加了 offset,但感觉还是有些浮动。
8:07 PM
进行了一次失败的解耦尝试,flutter 里面的 class 似乎是值传递,不能里面改外面的数据,坏。
8:15 PM
强行写重复代码优化了一下音频校准页面。
好像偏移逻辑写错了!!不过改了之后还是有问题,感觉是音频的飘动原因。但校准的时候和正式打谱的波动都不太一样!
8:43 PM
终于找到原因了……原来是 Flutter 的优化策略,缓存了一些神秘的变量,在收到 input 的时候手动计算就没问题了。
耶耶耶,做完辣!!!!今晚狂欢做谱!!!