视频提纲

项目概览

  • 项目定位与用途:面向物理教学的数字实验平台,覆盖微观到天体
  • 技术栈与架构: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 徽章链接)

如果需要,我可以把提纲细化成逐分钟的讲解脚本,并按你期望的视频时长配置每节占比。