崩坏童话:蜜糖村
纯单机网页游戏(Phaser 3 + TypeScript + Vite)。无存档、无后端、无 localStorage;浏览器打开即玩。完整流程约 25–35 分钟,含 4 个结局。
启动方式
npm install
npm run dev # 开发
npm run build # 产出静态 dist/
npm run preview # 本地游玩构建结果
npm test # 单元测试(PRD 数值/台词/矩阵)
请用 npm run dev 或 npm run preview 访问,不要直接用 file:// 打开(ESM 模块加载需要 HTTP)。
按键
| 按键 | 作用 |
|---|---|
| WASD / 方向键 | 四向移动 |
| E / 空格 | 交互、推进对话 |
| 1 / 2 / 3 | 对话选项(温柔 / 迟疑 / 否定) |
| Enter | 确认名字;结局「回到标题」 |
| ` (反引号) | 开关 Debug 面板 |
靠近可交互物(≤24 像素)会出现「按 E」提示。
游玩流程
- 标题画面 → 输入名字(留空默认为「小满」)→ Day 1 小屋
- 每日:晨起 → 广场公告板接任务 → 完成任务 → 黄昏钟声 → 回屋睡觉 → 梦境 → 次日
- Day 7 参加「第 413 届丰收庆典」,按幸福 / 觉知 / 线索走向 E1–E4 之一
幸福值不显示数字:左上角向日葵 12 瓣按值点亮,满格后花心出现黑籽。
Debug 面板(默认关闭)
按 ` 打开。仅服务验收,正常游玩无 UI 痕迹。
| 键 | 功能 |
|---|---|
| H / J | 幸福 ±10 |
| K / L | 觉知 ±10(L 仅 Debug 可下调) |
| Shift+1–7 | 设置当前日(用 code Digit1–7,兼容浏览器 Shift 改写 key 为 !@#) |
| C | 置齐全部线索 |
| 0–9 | 传送到 10 个场景(0小屋 1广场 2面包房 3杂货店 4诊所 5湖畔 6花田 7古井 8雾墙 9白色层) |
| V | 循环传送下一场景 |
| F1–F4 | 强制结局 E1–E4 |
| N | 负片闪帧 |
| P | 触发欢乐庆典 |
素材与地图制作流程(全部原创)
本项目禁止使用任何现成素材包。像素图与地图均由仓库内脚本 + 本机工具生成:
Aseprite
本机路径示例:/Applications/Aseprite.app/Contents/MacOS/aseprite
export PATH="/Applications/Aseprite.app/Contents/MacOS:$PATH"
aseprite -b -script scripts/generate_tileset.lua # → public/assets/tilesets/village.png(128 瓦 16×16)
aseprite -b -script scripts/generate_sprites.lua # → player / npcs / birds / extras / portraits / sunflower
- 瓦片:草地、石板路、湖水、花丛、莓果、树、房屋、室内家具、井、雾、白色层等
- 主角:16×24,4 朝向 × 4 帧行走;对话微笑头像 + E3「真实的脸」
- NPC ×7:各 3 档表情 smile / flat / off(off 仅 1–2 像素差异)
- 双子鸟 2 帧张嘴;群演 ×5
源文件同时保存 .aseprite 与导出 .png。
Tiled Map Editor
本机路径示例:/Applications/Tiled.app/Contents/MacOS/tiled
node scripts/generate-maps.mjs
# 可选:用 Tiled CLI 再导出校验
tiled --export-map json mapsrc/house.tmx public/assets/maps/house_tiled_export.json
10 张地图(§10):小屋、村广场、面包房、杂货店、诊所、湖畔、花田、古井空地、雾墙边界、白色层。
结构层:ground / obstacles(碰撞)/ objects(spawn、NPC、door、交互点)。
源 TMX 在 mapsrc/,运行时 JSON 在 public/assets/maps/。
一键重生成
npm run assets # 若已配置 scripts/generate-assets.sh
node scripts/generate-maps.mjs
技术要点
- 逻辑分辨率 320×180,整数倍放大,
pixelArt: true,无纹理平滑 CorruptionDirector:幸福 / 觉知 / 日 / 任务 / 线索 / 侵蚀阶段唯一真源- BGM 与 4 个音效均为 Web Audio 程序合成,无外部音频文件
- 无 localStorage、无外部网络资源 / 字体
验收
PRD §14 共 20 条。单元测试覆盖台词、任务奖励、侵蚀矩阵、错字表、结局优先级、悲伤数值等。