mirror of
https://github.com/TriM-Organization/Musicreater.git
synced 2024-11-11 01:27:35 +08:00
更新延期!详见群内
This commit is contained in:
parent
5c501a3466
commit
2e0dd06db6
@ -1,12 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
# W-YI 金羿
|
||||
# QQ 2647547478
|
||||
# 音·创 开发交流群 861684859
|
||||
# Email EillesWan2006@163.com W-YI_DoctorYI@outlook.com EillesWan@outlook.com
|
||||
# 版权所有 Team-Ryoun 金羿("Eilles Wan")
|
||||
# 若需转载或借鉴 请附作者
|
||||
# 版权所有 金羿("Eilles Wan") & 诸葛亮与八卦阵("bgArray") & 鸣凤鸽子("MingFengPigeon")
|
||||
# 若需转载或借鉴 请依照 Apache 2.0 许可证进行许可
|
||||
|
||||
|
||||
"""
|
||||
@ -15,7 +13,7 @@
|
||||
Musicreater Auto Installer (音·创自动安装器)
|
||||
A software that used for installing Musicreater automatically
|
||||
|
||||
Copyright 2022 Team-Ryoun
|
||||
Copyright 2022 all the developers of Musicreater
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the 'License');
|
||||
you may not use this file except in compliance with the License.
|
||||
|
2
LICENSE
2
LICENSE
@ -176,7 +176,7 @@
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
Copyright 2022 Team-Ryoun 金羿("Eilles Wan") & 诸葛亮与八卦阵("bgArray")
|
||||
Copyright 2022 all the developers of Musicreater
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -1,8 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
# 金羿 Eilles
|
||||
# QQ 2647547478
|
||||
# 音·创 开发交流群 861684859
|
||||
# Email EillesWan2006@163.com W-YI_DoctorYI@outlook.com EillesWan@outlook.com
|
||||
# 版权所有 金羿("Eilles Wan") & 诸葛亮与八卦阵("bgArray") & 鸣凤鸽子("MingFengPigeon")
|
||||
@ -12,8 +10,10 @@
|
||||
"""
|
||||
音·创 (Musicreater)
|
||||
一款免费开源的 《我的世界:基岩版》 音乐制作软件
|
||||
注意!除了此源文件以外,任何属于此仓库以及此项目的文件均依照Apache许可证进行许可
|
||||
Musicreater (音·创)
|
||||
A free opensource software which is used for creating all kinds of musics in Minecraft
|
||||
Note! Except for this source file, all the files in this repository and this project are licensed under Apache License 2.0
|
||||
|
||||
Copyright 2022 all the developers of Musicreater
|
||||
|
||||
@ -30,31 +30,154 @@ A free opensource software which is used for creating all kinds of musics in Min
|
||||
limitations under the License.
|
||||
"""
|
||||
|
||||
# 代码写的并非十分的漂亮,还请大佬多多包涵;本软件源代码依照 Apache 2.0 软件协议公开
|
||||
|
||||
|
||||
# 下面为正文
|
||||
|
||||
# 一定会好起来的
|
||||
# 音·创 为梦而创,为爱远航
|
||||
|
||||
|
||||
|
||||
from msctLib.buildIN import version
|
||||
from languages.lang import _
|
||||
from msctLib.log import log
|
||||
import wx # 引入wxPython库
|
||||
|
||||
__ver__ = f'{version.version[1]} {version.version[0]}'
|
||||
__author__ = '金羿Eilles'
|
||||
|
||||
|
||||
class MainWindow(wx.Frame):
|
||||
"""We simply derive a new class of Frame."""
|
||||
def __init__(self, *args, **kargs):
|
||||
super(MainWindow, self).__init__(*args, **kargs)
|
||||
|
||||
|
||||
#创建位于窗口的底部的状态栏
|
||||
self.CreateStatusBar()
|
||||
|
||||
# 设置菜单
|
||||
filemenu = wx.Menu()
|
||||
|
||||
#wx.ID_ABOUT和wx.ID_EXIT是wxWidgets提供的标准ID
|
||||
filemenu.Append(wx.ID_ABOUT, _(u"关于"), _(u"h关于"))
|
||||
filemenu.AppendSeparator()
|
||||
filemenu.Append(wx.ID_EXIT, item=_(u"退出"), helpString=_(r'h退出') )
|
||||
|
||||
# 创建菜单栏
|
||||
menuBar = wx.MenuBar()
|
||||
menuBar.Append(filemenu, u"文件")
|
||||
self.SetMenuBar(menuBar)
|
||||
|
||||
# 创建图标
|
||||
icon = wx.Icon(name="./resources/msctIcon.png")
|
||||
self.SetIcon(icon)
|
||||
|
||||
self.Show(True)
|
||||
|
||||
def initArgs(
|
||||
self,
|
||||
debug: bool = False,
|
||||
menuWidget: dict = {},
|
||||
wordView: str = '音·创 Musicreater',
|
||||
buttons: list = [],
|
||||
settingBox: list = [],
|
||||
notemap: list = [],
|
||||
infobar: str = '就绪',
|
||||
) -> None:
|
||||
'''使用参数初始化一些基本的音·创窗口组件
|
||||
:param debug 是否将日志输出到控制台
|
||||
wordview: str #言论部分显示的字样
|
||||
button: list = [ # 操作按钮部分
|
||||
dict = {
|
||||
按钮名称 : tuple(按钮图标,执行函数)
|
||||
},
|
||||
],
|
||||
settingbox: list = [ # 设置部分显示的字样及其对应的设置函数
|
||||
(
|
||||
设置名称:str,
|
||||
值类型:tuple,
|
||||
显示内容:str,
|
||||
设置操作函数:<function>,
|
||||
)
|
||||
],
|
||||
map: list = [ # 一首曲目的音符数据
|
||||
音符数据
|
||||
]
|
||||
:param infobar str 显示信息用
|
||||
'''
|
||||
|
||||
if debug:
|
||||
log('载入参数')
|
||||
|
||||
# 载入参量 注意!图标将不被载入参数
|
||||
|
||||
|
||||
self.__root = tk.Tk()
|
||||
'''窗口根'''
|
||||
|
||||
|
||||
|
||||
self.menuWidgets = menuWidget
|
||||
'''菜单设定项'''
|
||||
|
||||
self.wordView = wordView
|
||||
'''言·论 所显示的文字'''
|
||||
|
||||
self.buttons = buttons
|
||||
'''快捷功能按钮'''
|
||||
|
||||
self.settingBox = settingBox
|
||||
'''设置框'''
|
||||
|
||||
self.notemap = notemap
|
||||
'''音符列表'''
|
||||
|
||||
self.infoBar = infobar
|
||||
'''信息显示版所显示的文字'''
|
||||
|
||||
self.debug = debug
|
||||
'''是否打开调试模式'''
|
||||
|
||||
|
||||
def setMenu(self) -> None:
|
||||
'''设置根菜单'''
|
||||
if not self.menuWidgets:
|
||||
# 如果传入空参数则返回当前菜单
|
||||
try:
|
||||
return self._RootMenu
|
||||
except Exception as E:
|
||||
if self.debug:
|
||||
raise E
|
||||
log('无法读取菜单信息', 'WARRING')
|
||||
# 如果不是空参数则新建菜单
|
||||
log('新建一个菜单')
|
||||
|
||||
self._RootMenu = {}
|
||||
self._mainMenuBar = tk.Menu(self.__root)
|
||||
for menuName, menuCmd in self.menuWidgets.items():
|
||||
# 取得一个菜单名和一堆菜单函数及其显示名称
|
||||
menu = tk.Menu(self._mainMenuBar, tearoff=0)
|
||||
for cmdName, cmdFunc in menuCmd.items():
|
||||
if cmdName:
|
||||
menu.add_command(label=cmdName, command=cmdFunc)
|
||||
log('菜单项 -- ' + cmdName)
|
||||
else:
|
||||
menu.add_separator()
|
||||
log('分隔符 -- 分隔符')
|
||||
self._mainMenuBar.add_cascade(label=menuName, menu=menu)
|
||||
self._RootMenu[menuName] = menu
|
||||
log('计入一个菜单 -- ' + menuName)
|
||||
self.__root.config(menu=self._mainMenuBar)
|
||||
log('菜单设置完毕')
|
||||
|
||||
|
||||
|
||||
def __main__():
|
||||
import wx # 引入wxPython库
|
||||
app = wx.App(False)
|
||||
frame = wx.Frame(None, id=wx.ID_ANY, title=f"{_('F音创')} {__ver__}", size=(1600, 900))
|
||||
# 创建图标
|
||||
icon_obj = wx.Icon(name="./resources/msctIcon.png")
|
||||
frame.SetIcon(icon_obj) # 设定图标
|
||||
frame.Show(True) # 显示该窗口
|
||||
app.MainLoop() # 应用程序消息处理
|
||||
frame = MainWindow(None, id=wx.ID_ANY, title=f"{_('F音创')} {__ver__}", size=(1600, 900))
|
||||
|
||||
app.MainLoop()
|
||||
|
||||
|
||||
|
||||
|
24
README.md
24
README.md
@ -28,7 +28,7 @@
|
||||
|
||||
欢迎加群:[861684859](https://jq.qq.com/?_wv=1027&k=hpeRxrYr)
|
||||
|
||||
**注意注意注意!!!本程序尚在测试与开发阶段,且代码重构未完成,请自行定夺使用。**
|
||||
**注意注意注意!!!当前版本正在进行代码重构,详细信息请进入QQ群了解!!**
|
||||
|
||||
## 软件作者✒
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
|
||||
## 软件架构🏢
|
||||
|
||||
软件采用 *Python* 作为第一语言,目前还没有使用其他语言辅助。使用可更换的UI结构库,即开发人员可以通过更换display.py文件随心所欲地切换UI库;后期将支持插件自加载。
|
||||
软件采用 *Python* 作为第一语言,目前还没有使用其他语言辅助。
|
||||
|
||||
支持 Windows7+ 以及各个支持 Python3.6+ 的 Linux
|
||||
|
||||
@ -93,6 +93,7 @@ python3 Musicreater.py
|
||||
|
||||
## 诸葛亮与八卦阵的关于羽音缭绕资源包应用地说明(不必要)📖
|
||||
|
||||
0. ***注意注意!!!这一条说明是供给老版本(Delta 0.1.x)使用的***
|
||||
1. 首先!这里的提示是给想使用多音色资源包的人的,如果你想用就请下载 [神羽资源包(神羽自己的链接)](https://pan.baidu.com/s/11uoq5zwN7c3rX-98DqVpJg)提取码:ek3t
|
||||
2. 下载到你自己电脑上某个位置,可以不放置于本项目下。音色资源包较大,可以选取只下载:
|
||||
`神羽资源包_乐器、音源的资源包\羽音缭绕-midiout_25.0` 这个文件夹,再嫌麻烦的话,也可以只下载其中的:
|
||||
@ -108,13 +109,13 @@ python3 Musicreater.py
|
||||
6. 如果你想使用音色资源包来制作函数,那么解析时你应该用 *音创*->编辑->从midi导入音轨且用新方法解析,
|
||||
然后再使用 *音创*->函数(包)->下面的四个新函数
|
||||
|
||||
## 致谢🙏
|
||||
## 致谢列表🙏
|
||||
|
||||
1. 感谢由 [Fuckcraft](https://github.com/fuckcraft) “鸣凤鸽子”等 带来的我的世界websocket服务器功能
|
||||
2. 感谢 昀梦\<QQ1515399885\> 找出指令生成错误bug并指正
|
||||
3. 感谢由 Charlie_Ping “查理平” 带来的bdx转换功能
|
||||
4. 感谢由 CMA_2401PT 带来的 BDXWorkShop 供本程序对于bdx操作的指导
|
||||
5. 感谢由 Miracle Plume “神羽” \<QQshenyu40403\>带来的羽音缭绕基岩版音色资源包
|
||||
5. 感谢由 神羽 (Miracle Plume) \<QQshenyu40403\>带来的羽音缭绕基岩版音色资源包
|
||||
6. 感谢 Arthur Morgan 对本程序的排错提出了最大的支持
|
||||
7. 感谢广大群友为此程序提供的测试等支持
|
||||
8. 若您对我们有所贡献但您的名字没有显示在此列表中,请联系我!
|
||||
@ -131,19 +132,20 @@ python3 Musicreater.py
|
||||
|
||||
1. QQ 4740437765
|
||||
|
||||
## 待办事项
|
||||
## 待办事项⏲
|
||||
|
||||
* - [x] 可以使用由神羽提供的音乐资源包
|
||||
* - [x] 支持多语言
|
||||
* - [x] 支持创建可被Fastbuilder导入的.BDX文件支持
|
||||
* - [ ] 1.可以导出自定义的结构文件用于存储要导入地图中的结构
|
||||
* - [x] 支持自动安装
|
||||
* - [ ] 支持多语言
|
||||
* - [ ] 支持音乐编辑
|
||||
* - [ ] 窗口优化
|
||||
* - [ ] 1.支持插件功能
|
||||
* - [ ] 2.进度条
|
||||
* - [ ] 3.可以将音乐写入音符盒(红乐)
|
||||
* - [ ] 4.修改UI界面使之适应当前功能
|
||||
* - [ ] 5.支持自动给音符盒绑定更多的音色
|
||||
* - [ ] 6.可以由.schematic文件导入地图,亦可反向处理
|
||||
* - [x] 7.制作软件下载器使用户更直观地操作
|
||||
* - [x] 8.支持自定义创建websockeet服务器播放音乐
|
||||
* - [ ] 7.制作软件下载器使用户更直观地操作
|
||||
* - [ ] 8.支持自定义创建websockeet服务器播放音乐
|
||||
* - [ ] 9.支持使用红石播放音乐
|
||||
* - [ ] 10.支持采用延时的播放器
|
||||
* - [ ] 11.支持使用bdx导出结构
|
||||
|
@ -13,4 +13,8 @@ F音创 音·创 Musicreater
|
||||
开发者 - 开发人员 -
|
||||
译者 - 翻译人员 -
|
||||
确定 确定
|
||||
取消 取消
|
||||
取消 取消
|
||||
关于 关于
|
||||
退出 退出
|
||||
h关于 音·创 和他可爱的作者们
|
||||
h退出 退出 音·创
|
@ -10,7 +10,7 @@ class version:
|
||||
)
|
||||
"""当前所需库"""
|
||||
|
||||
version = ('0.2.0', 'Delta',)
|
||||
version = ('0.3.0', 'Delta',)
|
||||
"""当前版本"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
@ -27,11 +27,6 @@ class version:
|
||||
from sys import platform
|
||||
import os
|
||||
if platform == 'win32':
|
||||
import shutil
|
||||
try:
|
||||
shutil.rmtree(os.getenv('APPDATA') + '\\Musicreater\\')
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
for i in self.libraries:
|
||||
print("安装库:" + i)
|
||||
os.system(f"python -m pip install {i} -i {index}")
|
||||
|
142
readme2.md
142
readme2.md
@ -1,142 +0,0 @@
|
||||
<h1 align="center">音·创 Musicreater</h1>
|
||||
|
||||
|
||||
|
||||
<h3 align="center">一个免费开源的《我的世界:基岩版》音乐编辑制作软件</h3>
|
||||
|
||||
|
||||
|
||||
简体中文 |
|
||||
|
||||
|
||||
## 软件介绍
|
||||
|
||||
音·创 Musicreater 是一款免费开源的 **《我的世界:基岩版》** 音乐制作软件
|
||||
|
||||
欢迎加群:
|
||||
|
||||
**注意注意注意!!!本程序尚在测试与开发阶段,且代码重构未完成,请自行定夺使用。**
|
||||
|
||||
## 软件作者
|
||||
|
||||
金羿 Eilles:我的世界基岩版指令师,个人开发者,B站不知名UP主,南昌在校高中生。
|
||||
|
||||
诸葛亮与八卦阵 bgArray:我的世界基岩版玩家,喜欢编程和音乐,深圳初一学生。
|
||||
|
||||
## 软件架构
|
||||
|
||||
软件采用 *Python* 作为第一语言,目前还没有使用其他语言辅助。使用可更换的UI结构库,即开发人员可以通过更换display.py文件随心所欲地切换UI库;后期将支持插件自加载。
|
||||
|
||||
支持 Windows7+ 以及各个支持 Python3.6+ 的 Linux
|
||||
|
||||
***各位开发人员注意!!!多语言支持请使用函数`_`加载文字!!!如需补充,请在简体中文的语言文件(zh-CN.lang)中补充!!!***
|
||||
## 使用教程
|
||||
|
||||
### 安装教程
|
||||
|
||||
下载[音·创自动安装器],将其放在你希望安装音·创的位置,运行后将自动安装。
|
||||
|
||||
提示:下载源最好选择\"2 GitHub\"。
|
||||
|
||||
### 从源代码运行教程
|
||||
|
||||
#### Windows7+
|
||||
|
||||
0. [Gitee下载(需要登陆)]
|
||||
[Github下载(慢)]本程序源代码
|
||||
1. 安装Python 3.8.10
|
||||
2. 以管理员身份运行 补全库.py :
|
||||
- 点击 “开始” 菜单,搜索 `命令提示符`
|
||||
- 右键点击 `命令提示符` 左键点击 “以管理员身份运行”
|
||||
- 将 “补全库.py” 拖拽入开启的窗口,按下回车
|
||||
3. 等待安装完成后,双击运行 Musicreater.py
|
||||
|
||||
#### Linux
|
||||
|
||||
0. 若你没有足够优秀的环境,推荐先在终端敲:
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get upgrade
|
||||
sudo apt-get install python3
|
||||
sudo apt-get install python3-pip
|
||||
sudo apt-get install git
|
||||
```
|
||||
1. 若你足够自信,该整的都整了,就在你想下载此程序的地方打开终端,敲:
|
||||
```bash
|
||||
sudo git clone
|
||||
cd Musicreater
|
||||
python3 补全库.py
|
||||
python3 Musicreater.py
|
||||
```
|
||||
|
||||
### 使用说明
|
||||
|
||||
1. 直接运行就好
|
||||
2. 后期会出详细的使用教程
|
||||
3. 如果在使用过程中发现了bug拜托请上报给我,详见下方联系方式
|
||||
|
||||
## 诸葛亮与八卦阵的关于羽音缭绕资源包应用地说明(不必要)📖
|
||||
|
||||
1. 首先!这里的提示是给想使用多音色资源包的人的,如果你想用就请下载 [神羽资源包(神羽自己的链接)])提取码:ek3t
|
||||
2. 下载到你自己电脑上某个位置,可以不放置于本项目下。音色资源包较大,可以选取只下载:
|
||||
`神羽资源包_乐器、音源的资源包\羽音缭绕-midiout_25.0` 这个文件夹,再嫌麻烦的话,也可以只下载其中的:
|
||||
`神羽资源包_乐器\音源的资源包\羽音缭绕-midiout_25.0\mcpack(国际版推荐)格式_25.0` 或者:
|
||||
`神羽资源包_乐器\音源的资源包\羽音缭绕-midiout_25.0\zip格式_25.0`
|
||||
4. 接下来就是关键了:在*音创*中绑定资源包
|
||||
首先,先打开 *音创*->帮助与疑问->\[神羽资源包位置选择\]:选择文件夹... 这时候,会跳出选择框
|
||||
关键来了,选择:***您下载的`羽音缭绕-midiout_25.0`文件夹,或者`mcpack(国际版推荐)格式_25.0`或`zip格式_25.0`的上级目录***
|
||||
举个例子:我的文件路径是这样的:
|
||||
`L:\shenyu\音源的资源包\羽音缭绕-midiout_25.0`这里面有:`神羽资源包_25.0_使用方法.xls`、
|
||||
`mcpack(国际版推荐)格式_25.0`、`zip格式_25.0`两个文件夹和一个.xls文件,而你在音创中
|
||||
也应该选择这个文件夹:**L:\shenyu\音源的资源包\羽音缭绕-midiout_25.0**
|
||||
6. 如果你想使用音色资源包来制作函数,那么解析时你应该用 *音创*->编辑->从midi导入音轨且用新方法解析,
|
||||
然后再使用 *音创*->函数(包)->下面的四个新函数
|
||||
|
||||
## 致谢🙏
|
||||
|
||||
1. 感谢由 [Fuckcraft] “鸣凤鸽子”等 带来的我的世界websocket服务器功能
|
||||
2. 感谢 昀梦\<QQ1515399885\> 找出指令生成错误bug并指正
|
||||
3. 感谢由 Charlie_Ping “查理平” 带来的bdx转换功能
|
||||
4. 感谢由 CMA_2401PT 带来的 BDXWorkShop 供本程序对于bdx操作的指导
|
||||
5. 感谢由 Miracle Plume “神羽” \<QQshenyu40403\>带来的羽音缭绕基岩版音色资源包
|
||||
6. 感谢 Arthur Morgan 对本程序的排错提出了最大的支持
|
||||
7. 感谢广大群友为此程序提供的测试等支持
|
||||
8. 若您对我们有所贡献但您的名字没有显示在此列表中,请联系我!
|
||||
|
||||
## 联系我们📞
|
||||
|
||||
### 作者\<*金羿*\>(Eilles)联系方式
|
||||
|
||||
1. QQ 2647547478
|
||||
2. 电邮 EillesWan2006@163.com W-YI_DoctorYI@outlook.com EillesWan@outlook.com
|
||||
3. 微信 WYI_DoctorYI
|
||||
|
||||
### 作者\<*诸葛亮与八卦阵*\>(bgArray) 联系方式
|
||||
|
||||
1. QQ 4740437765
|
||||
|
||||
## 待办事项
|
||||
|
||||
* - [x] 可以使用由神羽提供的音乐资源包
|
||||
* - [x] 支持多语言
|
||||
* - [x] 支持创建可被Fastbuilder导入的.BDX文件支持
|
||||
* - [ ] 1.可以导出自定义的结构文件用于存储要导入地图中的结构
|
||||
* - [ ] 2.进度条
|
||||
* - [ ] 3.可以将音乐写入音符盒(红乐)
|
||||
* - [ ] 4.修改UI界面使之适应当前功能
|
||||
* - [ ] 5.支持自动给音符盒绑定更多的音色
|
||||
* - [ ] 6.可以由.schematic文件导入地图,亦可反向处理
|
||||
* - [x] 7.制作软件下载器使用户更直观地操作
|
||||
* - [x] 8.支持自定义创建websockeet服务器播放音乐
|
||||
* - [ ] 9.支持使用红石播放音乐
|
||||
* - [ ] 10.支持采用延时的播放器
|
||||
* - [ ] 11.支持使用bdx导出结构
|
||||
* - [ ] 12.支持采用tp的方法播放
|
||||
* - [ ] 13.支持识别曲谱(简谱)图片解析音乐
|
||||
* - [ ] 14.支持使用瀑布流的方式播放音乐
|
||||
* - [ ] 15.支持读入Everyone Piano的曲谱文件(.eop)
|
||||
* - [ ] 16.支持读入Musescore的通用曲谱文件,即musicXML(.mscz、.mscx)
|
||||
* - [ ] 17.支持自动搜寻地图目录位置(网易&微软)
|
||||
* - [ ] 18.支持读入JPword曲谱文件(.jpd)
|
||||
* - [ ] 19.新的UI设计,以及UI主题文件
|
||||
* - [ ] 20.以小节为单位做音符播放时间对标
|
@ -18,8 +18,16 @@ Copyright © W-YI 2022
|
||||
|
||||
新更新日志
|
||||
|
||||
丁 0.3.0
|
||||
2022 6 7 ~ 2022
|
||||
0.放弃 Delta 0.2.0 的开发
|
||||
1.修改版本命名规则,将Alpha~Delta更换为甲乙丙丁,西文对应翻译不变
|
||||
2.To-Do详见读我文档
|
||||
3.对于所有开发人员的称呼优先采用中文称呼
|
||||
4.文档优先采用中文
|
||||
|
||||
Delta 0.2.0
|
||||
2022 2 10 ~ 2022 x
|
||||
2022 2 10 ~ 2022 4 22
|
||||
1.进行了大量的代码重构,使之更加易于开发
|
||||
2.对功能进行了精简优化,能够更加方便的开发新功能
|
||||
3.完善程序的一些外观与性能优化,使用了更多多线程板块
|
||||
|
Loading…
Reference in New Issue
Block a user