# 植物大战僵尸拼音版 **Repository Path**: echooooooo/pinyin-fusion ## Basic Information - **Project Name**: 植物大战僵尸拼音版 - **Description**: 来自李翔在湘西的无私奉献 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-11-06 - **Last Updated**: 2026-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 拼音融合大作战 · 模块化工程 小学语文「声母 / 介母 / 韵母」融合闯关游戏。原为单文件 382 KB HTML, 现已拆分为**可维护的多模块源码**,交付物仍是**零依赖单文件**,双击即玩。 > 面向课堂:老师收到 HTML → 双击打开 → 就能上课。全程无需联网、无需服务器。 **本次拆解的硬约束:功能临时不变。** 交付物与原版的等价性由 4 条可复跑判据守住, 当前结论:**判据 1~4 全部通过**(详见 `docs/split-report.md` §6)。 --- ## 快速开始 ```bash npm install # 装 esbuild + acorn(两个 devDependency) npm run build # src/ → dist/拼音融合大作战.html npm run verify # 切割完整性 + 等价性验收 npm run serve # 起本地服务器,直接在浏览器里跑 ESM 源码 npm run probe -- # CDP 探针:读运行中游戏的状态 ``` 交付给用户的是 **`dist/拼音融合大作战.html`** —— 单个文件,双击即玩。 从原文件重建整棵源码树(一步到位,含完整性校验): ```bash bash tools/rebuild.sh ``` --- ## 目录结构 ``` outputs/pinyin-fusion/ ├── src/ 模块化源码(ESM,浏览器可直接 import) │ ├── index.html DOM 骨架(从原文件自动提取,逐字一致) │ ├── styles/ 表现层:base / fonts / cards / hud / screens │ ├── core/ 引擎层:零依赖 WebGL2 运行时(对外依赖 0) │ │ ├── math.js 常量、缓动、随机、矩阵、网格生成 │ │ ├── scene.js SceneNode / Material / MeshEntity / SpriteEntity │ │ ├── shader.js ShaderProgram 封装 │ │ ├── particles.js GPU 粒子系统 │ │ ├── renderer.js 渲染器(WebGL2、阴影、Bloom、后期合成) │ │ └── shaders/ 13 个 GLSL 常量,各自独立成文件 │ ├── data/ 数据层:纯数据 + 跨模块注册表 │ │ ├── registry.js 唯一跨模块通信通道(qe,惰性 getter) │ │ ├── pinyin.js 音节表、拼读规则、校验 │ │ ├── tones.js 带调音节→汉字映射 │ │ └── chars.js 汉字词库、关卡配置与文案 │ ├── game/ 游戏层:玩法逻辑 │ │ ├── init.js 引擎初始化、材质预设、贴图注册 │ │ ├── textures.js canvas 程序化贴图 │ │ ├── models.js 植物/道具模型工厂 │ │ ├── entities.js 糊涂怪、字牌、割草机、弹丸、光束、环境 │ │ └── controller.js 主控类(玩法流程、输入、战斗、关卡状态) │ ├── ui/ 界面层:DOM 辅助、6 个 screen │ │ ├── dom.js │ │ └── screens.js │ ├── audio/ 音频层:WebAudio 音效、BGM、语音朗读 │ └── boot/ 启动:视口适配、字体等待、引擎启动、主循环 ├── build.mjs 构建:src/ → 单文件 dist/ ├── dist/ 交付物(构建产物) ├── reference/ 原版黄金参照(入库,sha256 与桌面原文件一致) ├── tests/equivalence/ 等价性验收(基线 / 对比器 / 噪声测量,可复跑) ├── tools/ 拆分管线与验收工具(7 步重建 + 依赖分析 + 探针) └── docs/ 逆向规格、架构决策、拆分报告 ``` 规模:**31 个 JS 模块 + 5 个 CSS 文件**,5,246 行有效代码,178 个导出符号。 --- ## 设计约束(为什么是这样) ### 交付物必须是单文件 本游戏给小学老师在触屏白板上使用,收到 HTML 后**双击打开**,没有服务器。 实测:`file://` 下 `