添加脚本

This commit is contained in:
Rowland 2025-12-12 10:29:45 +08:00
parent 1a92f12dfd
commit 0a1abebe24
8 changed files with 96 additions and 130 deletions

30
build_kylin.sh Executable file
View File

@ -0,0 +1,30 @@
#!/bin/bash
echo "Building EG_Engine with PyInstaller..."
/home/hello/.local/bin/pyinstaller --onedir --windowed --name=EG_Engine \
--exclude-module pyassimp \
--add-data="RenderPipelineFile:RenderPipelineFile" \
--add-data="QPanda3D:QPanda3D" \
--add-data="core:core" \
--add-data="gui:gui" \
--add-data="ui:ui" \
--add-data="scene:scene" \
--add-data="project:project" \
--add-data="demo:demo" \
--add-data="plugins:plugins" \
--add-data="scripts:scripts" \
--hidden-import=PyQt5.sip \
--hidden-import=panda3d.core \
main.py
echo "Creating run.sh script in dist/EG_Engine/"
cat > dist/EG_Engine/run.sh << 'EOF'
cd ..
cd ..
python3.10 main.py "$@"
EOF
echo "Making run.sh executable"
chmod +x dist/EG_Engine/run.sh
echo "Build completed!"

30
build_linux.sh Executable file
View File

@ -0,0 +1,30 @@
#!/bin/bash
echo "Building EG_Engine with PyInstaller..."
pyinstaller --onedir --windowed --name=EG_Engine \
--exclude-module pyassimp \
--add-data="RenderPipelineFile:RenderPipelineFile" \
--add-data="QPanda3D:QPanda3D" \
--add-data="core:core" \
--add-data="gui:gui" \
--add-data="ui:ui" \
--add-data="scene:scene" \
--add-data="project:project" \
--add-data="demo:demo" \
--add-data="plugins:plugins" \
--add-data="scripts:scripts" \
--hidden-import=PyQt5.sip \
--hidden-import=panda3d.core \
main.py
echo "Creating run.sh script in dist/EG_Engine/"
cat > dist/EG_Engine/run.sh << 'EOF'
cd ..
cd ..
python3 main.py "$@"
EOF
echo "Making run.sh executable"
chmod +x dist/EG_Engine/run.sh
echo "Build completed!"

12
build_windows.bat Executable file
View File

@ -0,0 +1,12 @@
@echo off
set PYTHONPATH=%~dp0_internal
pyinstaller --onedir --windowed --name=EG_Engine --exclude-module pyassimp --add-data="RenderPipelineFile;RenderPipelineFile" --add-data="QPanda3D;QPanda3D" --add-data="core;core" --add-data="gui;gui" --add-data="ui;ui" --add-data="scene;scene" --add-data="project;project" --add-data="demo;demo" --add-data="plugins;plugins" --add-data="scripts;scripts" --hidden-import=PyQt5.sip --hidden-import=panda3d.core main.py
echo @echo off > dist\EG_Engine\run.bat
echo set PYTHONPATH=%%~dp0_internal >> dist\EG_Engine\run.bat
echo cd .. >> dist\EG_Engine\run.bat
echo cd .. >> dist\EG_Engine\run.bat
echo python main.py >> dist\EG_Engine\run.bat
echo pause >> dist\EG_Engine\run.bat
pause

View File

@ -1,17 +0,0 @@
#!/bin/bash
# 清空或创建结果文件
echo "" > results.txt
# 读取一级目录列表并逐个统计代码行数
while read dir; do
if [ -d "$dir" ] && [ "$(dirname "$dir")" = "." ]; then
echo "Processing $dir..."
echo "统计的是文件夹: $dir" >> results.txt
# 使用 cloc 统计代码行数,并将结果追加到文件中
cloc "$dir" >> results.txt
echo "----------------------------------------" >> results.txt
fi
done < directories.txt
echo "统计完成,结果已保存到 results.txt"

21
project/project_manager.py Normal file → Executable file
View File

@ -469,12 +469,23 @@ class ProjectManager:
success = self._executeStandardBuild(build_dir, parent_window)
if success:
# 创建run.sh文件
run_sh_path = os.path.join(build_dir, "run.sh")
try:
with open(run_sh_path, "w") as f:
f.write("#!/bin/bash\n")
f.write("python3 main.py \"$@\"\n")
# 添加执行权限
import stat
st = os.stat(run_sh_path)
os.chmod(run_sh_path, st.st_mode | stat.S_IEXEC)
except Exception as e:
print(f"创建run.sh文件失败: {str(e)}")
QMessageBox.information(parent_window, "成功",
"打包完成!\n可执行文件在 build/dist/ 目录中。\n"
"支持的格式:\n"
"- Windows: .exe 安装程序\n"
"- Linux: .tar.gz 压缩包\n"
"- 通用: .zip 压缩包")
"打包完成!\n可执行文件在 build 目录中。\n")
return True
else:
return False

View File

@ -1,73 +0,0 @@
✦ 3D引擎通常包含以下类型的插件
1. 渲染插件
- 高级渲染管线如PBR、延迟渲染
- 后处理效果Bloom、SSAO、HDR等
- 阴影系统优化
- 多光源渲染管理
2. 物理插件
- 刚体动力学Bullet、PhysX
- 软体物理和布料模拟
- 流体动力学
- 碰撞检测系统
3. 动画插件
- 骨骼动画系统
- Morphing和变形动画
- 粒子系统
- 程序化动画
4. AI插件
- 寻路和导航网格
- 行为树和状态机
- 路径规划算法
- 群体智能(如鸟群、鱼群)
5. 音频插件
- 3D空间音效
- 音频混响和效果
- 动态音乐系统
- 语音识别和合成
6. UI插件
- 2D/3D用户界面系统
- 触摸和手势识别
- 动态界面布局
- 主题和样式管理
7. 地形和环境插件
- 程序化地形生成
- 天气和季节系统
- 植被分布和生态模拟
- 水体和流体模拟
8. 输入和控制插件
- 多平台输入支持
- 手柄和VR控制器
- 触觉反馈系统
- 语音控制
9. 网络和多人游戏插件
- 网络同步
- 服务器架构
- 实时通信
- 匹配系统
10. 工具和编辑器插件
- 关卡编辑器
- 资源管理工具
- 调试和性能分析
- 版本控制集成
11. 平台特定插件
- 移动平台优化
- VR/AR支持
- 主机平台适配
- WebGL导出
12. 数据和存储插件
- 存档系统
- 云端同步
- 数据库集成
- 配置管理

35
tox.ini
View File

@ -1,35 +0,0 @@
[tox]
envlist = py310
[testenv]
deps =
pytest
pytest-qt
PyQt5>=5.15.9
PySide6>=6.8.1
Panda3D>=1.10.15
commands =
pytest demo/quick_script_test.py
[testenv:lint]
deps =
flake8
commands =
flake8 core/ demo/ scripts/
[testenv:coverage]
deps =
pytest
pytest-cov
PyQt5>=5.15.9
PySide6>=6.8.1
Panda3D>=1.10.15
commands =
pytest --cov=core --cov=demo --cov=scripts
[testenv:memory]
deps =
memory-profiler
Panda3D>=1.10.15
commands =
python -m memory_profiler memory_test_example.py

View File

@ -1176,11 +1176,19 @@ class MainWindow(QMainWindow):
# 帮助菜单
self.helpMenu = menubar.addMenu('帮助')
self.aboutAction = self.helpMenu.addAction('关于')
self.aboutAction.triggered.connect(self.showAboutDialog)
tool_menu = self.menuBar().addMenu("配置")
plugin_config_action = tool_menu.addAction("渲染管线插件配置")
plugin_config_action.triggered.connect(self.open_plugin_config_dialog)
def showAboutDialog(self):
msgBox = QMessageBox()
msgBox.setWindowTitle("关于")
msgBox.setText(f'元泰引擎系统\nMetaCore\n版本v1.0')
msgBox.setIcon(QMessageBox.NoIcon)
msgBox.exec_()
def open_plugin_config_dialog(self):
"""打开插件配置对话框"""
try: