Files
integrate_sjtu/PRD.md
T
2026-08-27 22:54:14 +08:00

2.4 KiB
Raw Blame History

PRD — 合成交大(Integrate SJTU)

产品目标

  • 在 D:\integrate_sjtu 生成一个完整的单 HTML 文件游戏「合成交大(Integrate SJTU)」,模仿《合成大西瓜》。
  • 使用 C9 高校校徽(assets/ 下 9 个 SVG 文件)作为合成物,从上落下。

功能需求

  • 9 级合成链(半径从小到大):西交(25) → 哈工大(30) → 中科大(35) → 南大(38) → 浙大(42) → 复旦(46) → 北大(50) → 清华(55) → 上交(60)。
  • 刷新规则:初始池只有 1 级(权重 1.0);合成出 N 级后解锁 N 级进池;按给定权重表(低阶为主、高阶稀有)随机。
  • 物理:Matter.js 0.19.0(CDN),固定时间步长 60Hz 累积器,给定引擎与球体参数。
  • 合成:collisionStart 接触即合(processMerges 内 60ms 视觉延迟),doMerge 前做 isMergeable 校验(同等级、游戏球、未移除、非静态、距离 ≤ 半径和+10px)。
  • 校徽渲染:SVG 内容内联 → new Image() + data URI → 离屏 Canvas 缓存 → drawBadge 优先从缓存绘制,未就绪用特征色圆+白字兜底。
  • 操作:鼠标/触屏 pointer 控制左右移动,松手投掷,480ms 投掷冷却。
  • 失败条件:堆叠高度超过顶部红线(y = 0.15H)。
  • 特效:合成粒子爆炸 + 白色闪烁环 + 浮动得分文字;合成上海交大全屏撒花(90 个 confetti)。
  • 游戏结束:遮罩 + 最终得分 + 重新开始按钮。
  • UI:渐变背景、蓝色半透明 HUD(左得分、右下一个预览)、虚线红线、预告球 + 垂直虚线预测落点。
  • 记分:合成得分 = newLevel*10 + (combo>1 ? (combo-1)*5 : 0);连击窗口 900ms。
  • 适配:360px 逻辑宽度,自动缩放适配手机和 PC。

用户场景

  • 用户用浏览器(手机或 PC)打开 index.html,按住移动预告球、松手投掷,合成高等级校徽争取高分。
  • 合成上海交大时全屏庆祝;堆叠越过红线则游戏结束,可点击重新开始。

验收标准

  • index.html 为单文件,内联全部 9 个 SVG 校徽,Matter.js 走 CDN。
  • 合成链、刷新权重、物理参数、冷却、红线位置与规格一致。
  • 可完整进行:投掷 → 合成 → 计分/连击 → 解锁 → 庆祝 → 结束 → 重开。

范围边界

  • 不包含音效、存档、排行榜、联网功能。
  • 交付物仅 index.html + 三文件文档;SVG 资源保持原样。