上一个
下一个

【大一课设】钢的琴

总共写了差不多一个半月——一开始疫情不然返校,我在溧阳自我隔离十四天——这是我这学期最愚蠢的操作。

在宾馆最终确定了主题,灵感来源于原神风花琴,又加了些乱七八糟的功能。

最终得分98分,估计老师不想给满分吧。也有可能是因为代码难度不大,主要是一些稀奇古怪的奇思妙想,总之代码能跑起来了——有些代码我都不知道当初怎么会这么写,不过既然能运行,看来问题也不是太大。

我将演示视频上传到了bilibili,也许您有兴趣看看。下面是连接:【大一课设】原神风花琴!但是C++_哔哩哔哩_bilibili 。以下是功能介绍,从报告上直接copy下来的。

其实我感觉老师可能会用很长的时间看报告,也许在这方面多下功夫是值得的。

1、选择乐器功能:

  程序内置了多种音色不同的乐器,包括钢琴,电子琴,八音盒,吉他,竹笛等。包含了打击乐器和弦乐器,它们都是由我自己在网上录制下来并编辑裁剪的。

2、弹奏乐器功能:

  程序可以读入用户输入的26个英语字母以及12345678这些按键,它们与音符一一对应,完成乐器的弹奏功能。这都是即时的,一切延迟都降低到了不会影响用户体验的水平,为了达成这个目标背后的类与函数设计耗费了巨大精力。

3、保存旋律功能:

  一段旋律可能是用户漫不经心的弹奏,但往往灵感消失后不会给你再来一次的机会。为此,我设计了保存弹奏记录的功能。它实现了将用户弹奏的旋律再现,这是由自创的文件结构实现的。既保存了音符数据,又保存它所对应的时间,这些文件还有其他用处。

4、播放所录制的旋律功能:

  录制下来的旋律可以通过程序完美复刻,并且可以使用其他乐器的音色进行弹奏。让用户有不一样的体验。

5、别踩白块功能:

  只是简单听音乐未免有些单调,我将别踩白块游戏嵌入了程序——一切通过游戏录制的旋律都可以玩上随机的别踩白块游戏。每踩到正确方块,都会按顺序弹奏所选取的音乐。

   同时,不同类的交互是我尤其注重的,在别踩白块中,这体现为玩家可以在主菜单中选择别踩白块的列数,从1到5,难度的改变为游戏的趣味性增色许多。

6、编辑旋律功能:(只完成部分,未开放)

  有的时候一段旋律大部分都是正确的,但是往往因为一两个错误而被无奈删除,为此我设计了编辑已经录制的旋律功能。它可以自由增加或者删除音符,更改某个音符长度。

订阅评论
提醒
0 评论
内联反馈
查看所有评论

《【大一课设】钢的琴》

0
希望看到您的想法,请您发表评论x