更新了内部数据格式文档,修复部分bug

This commit is contained in:
2022-04-05 00:55:43 +08:00
parent dd34ac9998
commit ae83f9c21e
10 changed files with 137 additions and 87 deletions

View File

@ -52,55 +52,128 @@ functions.py中会调取./addon/目录下的全部功能文件,这些功能文
- 变量
1. root
窗口根即一个Tk类注意外部调用请不要直接访问窗口根
因为这可不一定是Tk的类加载其他窗口组件的话就是其他的
了。
2. title
1. `infoBar`
信息显示栏,一个字符串,用于显示一些信息。
2. `title`
窗口标题,字符串
3. menuWidgets
对于窗口菜单的设定,其格式详见下方`setMenu`函数
4. wordView
3. `menuWidgets`
对于窗口菜单的设定,其格式如下:
```python
menuWidgets: dist = { # 菜单项目
str"菜单名" : dict{
str"选项名"|None : <function>选项函数
},
...
}
```
注:
`菜单名` : `str` 显示在菜单上的字符串
`选项名` : `str` 显示在菜单选项上的字符串
`选项函数` : `function` 菜单调取的函数(无返回值,无入参)
当 `选项名` 的布尔值判定为 `False` 的时候,无论 `选项函数` 为何,皆插入一段分割线,但 `选项函数` 不得为空
4. `wordView`
显示在言论上的文字,字符串
5. buttons
5. `buttons`
快捷功能按钮的列表列表的元素为字典字典的键是按钮的名称值为一个元组元组中含有两个元素其中元组的第1个元素为按钮图标是一个图片的路径第2个元素为执行的函数其值应当是一个函数对象。
```python
button: list = [ # 操作按钮部分
dict = {
按钮名称 : tuple(按钮图标,执行函数)
dict{
str"按钮名称" : tuple(
按钮图标,
执行函数
)
},
...
],
```
6. settingBox
6. `settingBox`
设置框,用于设置音乐的基本属性,例如词作者,曲作者等,设置格式如下:
```python
settingbox: list = [ #设置部分显示的字样及其对应的设置函数
(
tuple(
设置名称:str,
值类型:tuple,
显示内容:str,
设置操作函数:<function>,
)
),
...
]
```
其中,值类型可以是如下几个项
1. `('str',)` 字符串类型,使用文本框输入数据
2. `('bool',)` 布尔类型,使用复选框输入数据
3. `('num',最小值:int,最大值:int,步长:int = 1)` 数值类型,使用数值滑动条输入数据
3. `('num',最小值:float,最大值:float,步长:float = 1)` 数值类型,使用数值滑动条输入数据
4. `('list',列表项:list)` 单选类型,即列表中多选一,使用单选框输入数据
其中,值操作函数需要有一个参数,用于传递用户提供的设置值。
7. `notemap`
音符数据表,用于存储曲谱信息,存储格式如下
```python
notemap: list = [ # 音轨列表
dict{ # 单个音轨
'instrument' : str"乐器",
'velocity' : int 响度,
# 这里理论上需要写一个小节多少个X分音符
# 以及小节里的都是几分音符
# 但是这个留给以后来支持
int 小节编号 : [ # 一个小节
tuple( # 一个音符
时间 : int,
持续 : int,
乐器 : str,
采样 : float,
响度 : int,
),
...
],
...
},
...
]
```
其中,对于每个音符:
1. 时间 单位:帧 当前音符开始时,距离当前小节开始所经过的帧数
2. 持续 单位:帧 当前音符持续的帧数
3. 乐器 当前音符使用的乐器,需要在乐器列表中有所注册
4. 采样 当前音符在MC的采样音高(不含打击乐器)
5. 响度 单位:格的-1次方 音符播放源距离播放者的距离的倒数
- 函数
1. `setMenu`对菜单的基础设定
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ python
```python
{
菜单名 : {
选项名 : 选项函数
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
注:
`菜单名` : `str` 显示在菜单上的字符串
@ -155,13 +228,16 @@ functions.py中会调取./addon/目录下的全部功能文件,这些功能文
# 这里是全局设置
'name' : str, #项目名,即包名
'title': str, #音乐名称
'repeation': bool, #是否开启重复播放
'player_selection': str, #玩家选择器,用于选择播放的的玩家
# 下面是音轨独立设置
'track_name': str, #此音轨的名字
'track_sbname': str, #此音轨所使用的计分板
- 变量
使用类中的变量可以对类中的内容进行实时修改
####
全曲的设置应该如下:
```python
标题 : str = '无名'
副标题 : str = ''
作曲 : str = '佚名'
作词 : str = ''
歌曲版权信息 : str = ''
# bpm 暂时不需要
```