
project513 加速版第 1 轮(2026-05-13-01)。
最简单:直接双击打开
prototypes/2026-05-13-01-tide-bloom/build/index.html
无任何依赖,纯 HTML5 + Canvas + 原生 JS + WebAudio。
如需本地静态服务(可选):
cd prototypes\2026-05-13-01-tide-bloom
python -m http.server 51713
# 或: npx serve .
然后访问 http://localhost:51713/build/。
S / A / B / CR 重开 / M 静音在 60 秒内通过精准放置涟漪触发尽可能多的绽放和共振,冲击 S 级。
加速版 GO 状态的扩展计划,按 expansion_plan.md 的 5 段输出。
涟漪击中第一颗球的瞬间:环带音 + 球高光闪一圈 + 球被推开。这个反馈在第一次单击的 0.3s 内就发生,可靠且明确。
涟漪推力方向反直觉。第一次单击如果点在球上(多数人直觉),球会被推开而不是消失,玩家可能短暂困惑 1-3 秒。
玩家通过 [单击屏幕掀起涟漪],
不断获得 [球被推离击点 + 同色聚集绽放 + 屏幕震动反馈],
为了 [60 秒内积分冲 S 级 + 释放全屏共振],
逐步形成 [球外侧反向击点 + 潮汐释放时机 + 同色优先级] 的策略。
任何新增功能必须服务这句话。
bloomChainMultiplier,新增"3 连绽放屏幕黑白闪 + 高亢音效"把 Tide Bloom 升级为可对外展示的 5 分钟 demo:3 关递进 + 教学引导 + 1 套完整美术风格。
玩家在飘满光球的水面上单击掀起涟漪,把同色光球互相推向彼此触发绽放得分,绽放积累的潮汐能量可以引爆全屏共振。
观察 → 选击点 → 涟漪扩散 → 推动光球 → 同色 ≥3 聚集
→ 触发绽放(得分 + 潮汐 +) → 潮汐满 → 共振大爆炸R:重开M:静音切换见 src/game.js 顶部 CFG,共 16 个参数。
| 层 | 实现 |
|---|---|
| 视觉 1 | 涟漪扩张环 + 二层羽化 |
| 视觉 2 | 光球高光 + 推力命中闪一圈 |
| 视觉 3 | 绽放粒子爆发(18-44 颗) |
| 视觉 4 | 潮汐渐变充能条 |
| 视觉 5 | 共振全屏白色巨环 |
| 颜色 | 4 色饱和度高 + 同色绽放配色统一 |
| 节奏 | 分数弹字向上漂浮 |
| 物理 | 屏幕震动(连锁 ≥3 时更明显) |
| 音频 | WebAudio 合成涟漪/绽放/连锁/共振/结束 |
src/{index.html, game.js}、build/{index.html, game.js} 全部存在 ✓node --check src/game.js 退出码 0 ✓index.html 内联引用 ./game.js,无任何外部网络依赖 ✓build/index.html 可在任意现代浏览器(Chrome 90+ / Edge / Firefox)打开走完一局 60 秒的预期:
for(0..5)),分布在 4 边spawnRing() → 屏幕中央生成扩张环 → WebAudio 涟漪音R 重开| 行为 | 触发条件 | 代码路径 | 状态 |
|---|---|---|---|
| 左键涟漪 | pointerdown e.button===0 | spawnRing(p.x, p.y, false) | ✓ |
| 右键共振 | pointerdown e.button===2,潮汐满 | triggerResonance() | ✓ |
| 长按共振 | 左键按住 ≥0.4s 且潮汐满 | update 内 pressInfo 检查 | ✓ |
| 空格共振 | keydown ' ',潮汐满 | window keydown | ✓ |
| R 重开 | keydown r/R | startGame() | ✓ |
| M 静音 | keydown m/M | state.muted toggle | ✓ |
| 边界反弹 | 球碰到 4 边 | update 内 minX..maxY | ✓ |
| 球间软碰撞 | 两球重叠 | update 内 i × j 双循环 | ✓ |
| 同色绽放 | 同色 ≥3 球距离 ≤64px | detectBlooms BFS | ✓ |
| 连锁倍率 | 单帧多簇 | chain × 1.35^(n-1) | ✓ |
| 结算评级 | timeLeft ≤ 0 | endGame 分级 | ✓ |
| 共振阻断 | tide < tideMax | triggerResonance 早退 | ✓ |
| WebAudio 失败回退 | AudioContext 不可用 | getAudio() 返回 null,beep 跳过 | ✓ |
| DPR 自适应 | resize | setTransform(dpr,..) | ✓ |
| ContextMenu 抑制 | 右键 | contextmenu preventDefault | ✓ |
| 弱点 | 影响 | 应对 |
|---|---|---|
| 涟漪推力方向是反直觉的(玩家第一反应点在球上,但被推力学逻辑限制不会消除球) | 30 秒理解率有风险 | 已加 6s 提示文字 + R 重开 + 60s 不立死设计;明天可加首次教学指引 |
| 球生成在屏幕 4 边且向随机方向飞,偶尔生成的球第一秒就反弹边界 | 略微影响视觉清晰度 | 容忍,反弹本身是合理反馈 |
| 共振时所有同色 ≥2 球一起绽放,没有再算 chain | 减少了爆点 | 故意——避免一次共振拿太多分 |
| 同色聚类用 BFS,理论上 O(n²) 每帧,n=28 | 性能上限 ~784 次距离比较 | 球数已封顶,60fps 无压力 |
| 右键事件在某些触屏浏览器不存在 button===2 | 触屏用户拿不到右键共振 | 已用长按和空格作冗余 |
无 FIX_ONCE 触发。
| 指标 | 分数 | 备注 |
|---|---|---|
| 30 秒可理解 | 8.0 / 10 | 单点输入 + 提示文字 + 即时反馈,但涟漪推力方向反直觉是已知风险 |
| 操作反馈 | 9.0 / 10 | 单击 → 涟漪 + 音效 + 球高光 + 震动,4 层即时反馈 |
| 核心循环 | 8.5 / 10 | "击点 → 推球 → 同色绽放 → 潮汐 → 共振 → 再开"闭环清晰 |
| 复玩动力 | 7.5 / 10 | S/A/B/C 评级 + 60s 短局 + 连锁机制鼓励刷分 |
| 爽感 | 8.5 / 10 | 多 chain 绽放 + 共振大爆炸 + 屏幕震动 + 弹字分数 |
| 策略空间 | 7.5 / 10 | 击点选择 + 潮汐释放时机 + 同色优先级判断;后期会偏向反应 |
| 开发完成度 | 8.0 / 10 | 所有 must-build 完成,无已知阻塞;扣 2 分给"未做真实浏览器测试" |
| 商业扩展潜力 | 8.0 / 10 | 皮肤(球外观/涟漪样式)+ 关卡(球生成谱)+ 角色(涟漪触发器)等多方向可扩展,且 ≤60s 短局适合手游 |
综合分:(8.0 + 9.0 + 8.5 + 7.5 + 8.5 + 7.5 + 8.0 + 8.0) / 8 ≈ 8.13 / 10
通过 PLAYTEST 自测,达到好玩门槛各项硬指标,进入 ACCEPTANCE 阶段最终判定。
俄罗斯方块 lite · 7 种方块下落 · 消行得分 · 顶到顶 = GG
点击地图节点放置塔 · 自动攻击 · 10 波敌人 · 守住基地
鼠标瞄准 + 单击发射 + 3+ 同色相邻 = 消除 + 浮动消失 + 通关或泡泡触底
拖拽画几条斜板 → 按 GO → 看小球被重力 + 反射推进,落入篮筐 = 过关。
鼠标瞄准 + 单击释放 + 同级球碰撞自动合成升级 + 容器顶部红线 = Game Over
—