# 演示程序使用教程 *由于先前的 **读我文件**(README.md) 过于冗杂,现另辟蹊径来给大家全方位的教程。* *这是演示程序(demo)的使用教程,将在这里提供演示程序的相应的使用教程* ## 下载与启动教程 ### [视窗(Windows)操作系统](./download%26atart/Windows.md) ### [里纽克斯(Linux)操作系统](./download%26atart/Linux.md) ### [安卓(Android)与安卓衍生操作系统](./download%26atart/Android.md) ## 演示程序使用教程 1. 参数说明 - midi路径:含有mid文件路径、文件名、后缀的完整文件路径,或者一个目录(demo可接受批量转换)。可以使用相对或绝对路径皆可 - 输出路径:输出文件夹的路径,不需要指示文件名 - 是否重置计分板:`1`或`0`(歌曲放完是否重置,推荐`1`) - 进度条:是否启用进度条,以及自定义进度条样式。输入`0`或`False`表示不启用进度条,输入`1`或`True`表示使用默认进度条,其余的输入均表示使用输入的格式作为自定义的进度条样式 若不支持自定义,则仅能输入`0`或`1`表示“关闭”或“开启” - 计分板名称:游戏内的计分板名称 - 音量:0-1之间的小数(含0,1)正常来说推荐`1` - 速度倍率:小数数据,其值不可为0,一般写`1` - 玩家选择器:包括 `@x` 在内的全部选择器,即若要选择全部标签为`Holo`的玩家,则需要如此输入:`@a[tag=Holo]` - 没有报错且在输出路径下找到mcpack或bdx即为生成成功: # 其他说明 ## 对于 延迟播放器 的说明 问1:什么是延迟播放器? 答1:播放音乐,不同的音符之间存在间隔,可以用不同的方式实现音符间空白的时间。其一是计分板,通过给计分板加分,对应分数播放对应的音符就可以间隔到,还有就是命令方块自带的延迟,这样也可以实现音符间空白。延迟播放器即后者,但是因为只能对命令方块写入这样的延迟数据,所以仅可以使用包含NBT的结构导出或者直接输出至世界。 问2:可不可以不要积分板? 答2:详见问1,切换你所需要的播放器即可。 ## 对于 进度条自定义 功能的说明 因为我们提供了可以自动转换进度条的功能,因此在这里给出进度条自定义参数的详细解释。 请注意,并非所有的演示样例程序都支持自定义进度条。 一个进度条,明显地,有**固定部分**和**可变部分**来构成。而可变部分又包括了文字和图形两种(当然,《我的世界》里头的进度条,可变的图形也就是那个“条”了)。这一点你需要了解,因为后文中包含了很多这方面的概念需要你了解。 进度条的自定义功能使用一个字符串来定义自己的样式,其中包含众多**标识符**来表示可变部分。 标识符如下(注意大小写): | 标识符 | 指定的可变量 | |---------|----------------| | `%%N` | 乐曲名(即传入的文件名)| | `%%s` | 当前计分板值 | | `%^s` | 计分板最大值 | | `%%t` | 当前播放时间 | | `%^t` | 曲目总时长 | | `%%%` | 当前进度比率 | | `_` | 用以表示进度条占位| 表示进度条占位的 `_` 是用来标识你的进度条的。也就是可变部分的唯一的图形部分。 **样式定义字符串**的样例如下,这也是默认的进度条的样式: `▶ %%N [ %%s/%^s %%% __________ %%t|%^t]` 这是单独一行的进度条,当然你也可以制作多行的,如果是一行的,输出时所使用的指令便是 `title`,而如果是多行的话,输出就会用 `titleraw` 作为进度条字幕。 哦对了,上面的只不过是样式定义,同时还需要定义的是可变图形的部分,也就是进度条上那个真正的“条”。 对于这个我们就采用了固定参数的方法,对于一个进度条,无非就是“已经播放过的”和“没播放过的”两种形态,所以,使用一个元组来传入这两个参数就是最简单的了。元组的格式也很简单:`(str: 播放过的部分长啥样, str: 没播放过的部分长啥样)` 。例如,我们默认的进度“条”的定义是这样的: `('§e=§r', '§7=§r')` 综合起来,把这些参数传给函数需要一个参数整合,你猜用的啥?啊对对对,我用的还是元组! 我们的默认定义参数如下: `(r'▶ %%N [ %%s/%^s %%% __________ %%t|%^t]',('§e=§r', '§7=§r'))` *对了!为了避免生成错误,请尽量避免使用标识符作为定义样式字符串的其他部分*