# dsh-pet 0.3.8 物理兼容修订 本地版本:`0.5.2`(dsh-pet 0.3.8 物理兼容修订)。只支持 `dsh-pet 0.3.8` 的桌面模式。 ## 行为 - 身体碰撞框、动量交换、拖拽释放估速、弹簧跟手、屏幕边界积分和落地挤压直接复用 0.3.8 的共享核心。 - 本机桌宠通过带随机令牌的回环连接提供真实位置与速度;不再通过 `/pose` 轮询估速,也不通过 `/throw` 转换碰撞力度。 - 本机桌宠、远端代理之间以及本机桌宠彼此之间,由联机碰撞模块统一处理。 - 静止重叠不再强制推开或添加速度;相向运动且身体相交时才交换动量。接触按宠物对去重,没有只拦截一方的 300ms 冷却。 - 开启联机碰撞且桥接成功后,自动暂停桌面原生碰撞。原生配置值保留,用于关闭、断线或退出后的恢复。即使在原插件勾选碰撞,接管期间原生求解也不会同时运行。 - 桥接未就绪时,联机碰撞不会生效;设置页显示原因。浏览器浮层不参与统一碰撞。 - 联机碰撞仍只改变本机的远端代理,不向另一台电脑传递物理结果。 ## 原插件适配 安装适配器后,需要重新加载原桌宠插件: ```powershell node scripts/patch-physics-038.mjs '' --backup-dir '<备份目录>' ``` 适配器修改原插件 `main.js`、`preload.js`、`sprite.js`,增加 `native-bridge.cjs` 与 `json-channel.cjs`。精确检查版本与修改锚点;全量备份之后才写入,重复执行会验证现有文件。 恢复时使用相同目录: ```powershell node scripts/patch-physics-038.mjs '' --backup-dir '<备份目录>' --restore ``` 恢复会检查当前文件是否仍为该适配器生成的内容,避免覆盖后续修改。升级 dsh-pet 后应重新审查适配器,不能将本补丁直接套用到其它版本。 ## 模块 - `runtime/shared/pet-core.cjs`:从已安装 0.3.8 提取的共享核心,附原 MIT 许可证。 - `collision-world.cjs`:碰撞对、去重与提交。 - `motion.cjs`:物理积分、缩放转换与落地判定。 - `native-bridge.cjs` / `local-pet-link.cjs`:实时连接、碰撞速度传递与可恢复的碰撞所有权。 - `json-channel.cjs`:有长度限制的消息传输。 - `scripts/patch-physics-038.mjs`:可恢复的原插件适配器。 ## 已执行验证 14 项 Node 回归测试通过,覆盖共享物理框、动量交换、静止重叠、碰撞去重、屏幕坐标和 JSON 通道。独立隐藏 Electron 窗口测试确认:两个真实窗口发生碰撞后目标移动;落地挤压动画触发;关闭碰撞后原生所有权恢复;渲染器无错误。测试含 150% 缩放的数值转换,不代表已经实测所有混合 DPI 多屏布局。 边界:保留原插件以矩形相交及中心连线交换动量的模型。没有实现任意高速的连续碰撞检测,也不提供刚体堆叠。