PMSS-Pro 视频提纲
视频提纲
项目概览
- 项目定位与用途:面向物理教学的数字实验平台,覆盖微观到天体
- 技术栈与架构:
Python + Pygame,自研物理引擎与可视化界面 - 核心模块划分:
source/basic、source/game、source/core、source/ai - 主入口与循环:
main.py 调用main() 启动游戏与 AI线程(source/core/__main__.py:9-17,source/core/__main__.py:18-23)
界面与操作
- 主界面元素:菜单、设置按钮、状态叠层(FPS、物体数、鼠标位置、倍速、暂停)
- 鼠标与键盘交互:拖拽放置、属性编辑、中键复制、视角移动、倍速、暂停
- 常用快捷键总览(与 README 对应)
- 事件处理主循环:
source/game/game.py:767-905
基础物理元素
- 球体、墙体、绳索、弹簧、轻杆、墙体挂点(
WallPosition) - 元素创建与管理:右侧菜单选项创建、吸附与拖拽流程(
source/game/option.py:259-556、source/game/option.py:672-931、source/game/option.py:933-1136、source/game/option.py:1145-1561) - 元素控制器:属性编辑、跟随、信息显示、加速度/速度箭头(
source/game/control_option.py:26-40、source/game/game.py:1426-1636) - 物理引擎特性:碰撞检测与响应、弹性碰撞、顶点/线段检测(
source/game/game.py:1695-1737)
环境设置与模式
- 设置面板:重力、空气阻力、碰撞系数、模式值同步与一次性提交(
source/game/input_menu.py:171-185、source/game/game.py:1054-1110) - 地表模式与天体模式切换逻辑与参数联动(
source/game/game.py:1823-1907) - 天体模式特性:引力、融合、环绕速度辅助、背景与比例切换(
source/game/game.py:1855-1871、source/game/option.py:289-357) - 模式自然切换判定:视野与坐标阈值(
source/game/game.py:1841-1850、source/game/game.py:1889-1907)
教学辅助与叠层信息
- 速度/加速度可视化箭头与数值(大/小字体两套,单位标注)(
source/game/game.py:1436-1542、source/game/game.py:1544-1636) - 视角跟随与信息面板:质量、半径、电荷显示(
source/game/game.py:1436-1475) - 性能状态:FPS 平均/最小、物体计数、倍速、暂停指示(
source/game/game.py:1277-1369)
预设与模板
- 预设菜单:从
savefile/default 自动汇总显示(source/game/game.py:1237-1274) - 快捷加载:数字键 1–9 绑定字典序预设文件(
source/game/game.py:977-999、source/game/game.py:174-200) - 预设加载提示:居中弹出“加载成功”短提示(
source/game/game.py:282-302) - 一键加载/保存:
G/L/K 与自动备份(source/game/game.py:968-976、source/game/game.py:728-735)
场景保存与恢复
- 保存内容:元素集合、墙体挂点、基础属性(过滤复杂对象),统一 JSON(
source/game/game.py:304-476) - 读取流程:兼容旧数据结构、重建元素与关联(
source/game/game.py:478-725) - 对外接口:
saveGame/loadGame(source/game/game.py:728-735)
AI 助手与命令体系
- AI线程启动与模型切换(输入
. /..)(source/core/ai_thread_loop.py:10-27、source/core/ai_thread_loop.py:71-120) - 上下文构造:当前模式、屏幕对角坐标、元素属性打包传递(
source/core/ai_thread_loop.py:124-138) - 指令格式:返回文本中的
$...<命令> 执行解析(source/core/ai_thread_loop.py:140-156) - 命令支持:创建元素、设置属性、环境参数、更改速度/力、删除、模式切换(
source/core/command.py:46-281)
多进程投影显示
- 双进程架构:主界面 + 投影窗口(
main_multiprocess.py:44-76) - 队列传输画面数据、四面投影布局效果(
projection_display.py:59-143) - 主进程设置投影队列与发送画面(
source/game/game.py:1203-1219、source/game/game.py:1220-1223)
进阶物理与扩展
- 电荷与库仑力:属性、计算、最小距离钳制、与引力兼容(README 详解段落;界面一位小数显示)
- 自然/人工外力合成与加速度显示
- 绳索/弹簧/轻杆:长度/刚度/阻尼/宽度参数与可视化(
source/game/option.py:1393-1561、source/basic/spring.py、source/basic/rod.py、source/basic/rope.py)
配置与资源
- 配置文件:元素选项、环境参数、模型列表、屏幕大小、翻译、多语言(
config/*.json、config/screenSize.txt) - 静态资源:字体与各预设图标(
static/) - AI 模型与密钥配置:
config/siliconFlowConfig.json
使用与演示建议
- 三步创建实验:放置物体 → 设置属性 → 观察现象
- 地表模式演示:自由落体、平抛、斜面、篮球弹跳
- 天体模式演示:行星环绕、融合、比例缩放、环速辅助
- AI 场景控制:用自然语言生成/调整实验并保存
- 预设库走查:一键加载模板并参数微调
性能与稳定性
- 多步细分仿真、帧率优化策略与阈值提示
- 防抖与输入提交策略(预设加载节流、编辑面板一次性提交)
- 数据结构兼容与错误兜底(旧预设、非法颜色处理)
结尾与信息
- 项目亮点回顾与教学价值
- 许可协议:LGPL v2.1
- 用户手册与反馈渠道(README 徽章链接)
如果需要,我可以把提纲细化成逐分钟的讲解脚本,并按你期望的视频时长配置每节占比。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Keenran Lee的博客!
