
拖拽画几条斜板 → 按 GO → 看小球被重力 + 反射推进,落入篮筐 = 过关。
拖拽画几条斜板 → 按 GO → 看小球被重力 + 反射推进,落入篮筐 = 过关。
build/index.htmlGO ▶ → 球从绿点掉下来,碰板反弹,目标进金筐PERFECT! → 按 NEXT ➜ 下一关;没进 → MISSED → 按 RESET 重排| 平台 | 画板 | 删板 | 触发模拟 | 重置 | 下一关 |
|---|---|---|---|---|---|
| 桌面 | 鼠标按住拖拽 | 单击已有板 | Space 或 GO 按钮 | R 或 RESET | N 或 NEXT |
| 移动 | 单指拖拽 | 单击已有板 | GO 按钮 | RESET 按钮 | NEXT 按钮 |
右下 2× OFF/ON:开启模拟 2 倍速(编辑模式无效)
| 关 | 板数 | 难度 | 重点机制 |
|---|---|---|---|
| 1 | 1 | 极易 | 学画板 + 看物理 |
| 2 | 2 | 易 | 学拐弯(有挡板需要绕) |
| 3 | 2 | 中 | 竖墙绕过 |
| 4 | 3 | 中 | 中央窗口对准 |
| 5 | 3 | 中高 | 双重折弯 |
| 6 | 3 | 高 | 双层窗 |
LEVEL X/6:当前关0 / N 板:已用板 / 最大板数EDIT / SIM:模式标签(橙=编辑 / 绿=模拟)tip 是本关提示PERFECT! 金色蒙板 + NEXT 亮MISSED · 球出屏STUCK · 球卡住通关 · 你赢了全部 6 关PHYS.g = 0.30 // 重力加速度
PHYS.restitution = 0.62 // 板弹性(0=粘, 1=完全弹)
PHYS.friction = 0.86 // 每次反弹的能量损失
PHYS.wallRest = 0.5 // 固定墙弹性(更弱,避免在墙之间无限弹)
PHYS.minSpeed = 0.35 // 静止阈值
PHYS.stuckFrames = 240 // 240 帧 = 4 秒(60fps)LEVELS[] 数组每项含:
spawn:{x,y} 出生点basket:{x,y,w,h} 篮筐矩形walls:[{x,y,w,h},...] 固定不可删墙maxBoards 玩家可放置板上限tip 中文提示新增 / 调整关卡只需在数组里加 / 改对象。
已验证已验证已验证已验证待验证待验证待验证待验证stuckFrames 兜底但 LOSE 蒙板出现可能让玩家迷惑玩家通过 拖拽画斜板,不断获得 球反弹路径的物理反馈,为了 让球进入篮筐,逐步形成 板的角度 / 位置 / 数量组合 + 多解最优化的策略。
ballVsBoard 触发时调用 playPitchedTone(板长度 → pitch),板越短音越高walls[] 加 angle 字段;碰撞改用线段反射(不再 AABB)把 6 关扩到 24 关 + 加声音 + 接广告 + 上线小游戏内测
localStorage 存最少板数 + 通关 / 未通关状态| 参数 | 值 | 理由 |
|---|---|---|
g | 0.30 | 不太轻飘,也不太砸(玩家有反应时间) |
restitution | 0.62 | 弹但不弹太疯(连续 3 板后球还能往下走) |
friction | 0.86 | 反弹有衰减,避免永动机 |
wallRest | 0.5 | 固定墙比玩家板更"硬",避免在两面墙间无限弹 |
minSpeed | 0.35 | 阈值低于此判为静止 |
stuckFrames | 240 | 4 秒(60fps),给玩家时间看清「球停了 = 我设计的板不对」 |
| 关 | 板数上限 | 障碍 | 必须用到的"招" |
|---|---|---|---|
| 1 | 1 | 0 | 教学:一条板就能解 |
| 2 | 2 | 横挡板 | 学拐弯(一板把球弹向左,另一板把球弹向下) |
| 3 | 2 | 竖墙 | 学绕过竖墙(高板把球弹向竖墙之外) |
| 4 | 3 | 双横挡板 + 中间窗 | 学穿过窄窗(球必须垂直对准窗中心) |
| 5 | 3 | 双重折弯 | 学多板组合(每板修正一次方向) |
| 6 | 3 | 双层窗(4 横挡板 + 2 窗) | 综合:球要穿过 2 个窗才能到底 |
不限板数 = 玩家可堆 100 块板暴力解 = 失去解谜趣味。
强制上限 = 玩家必须思考最优配置。
EDIT / SIM pill 颜色不同:node --check 通过(从 src/index.html <script> 块抽取后检查)src/index.html ≡ build/index.html(SHA256 EA0E2554D5E78C5CDBB6A811667D044378F073BFC30AE7BC1E87B0EAB90E29CC 一致)build/index.html 即可)BALL ↓,右下金色 GOAL0 / 1 变 1 / 1GO ▶ → 模式变 SIM,球从绿点掉下来PERFECT! 金色字 + 32 粒爆炸MISSED · 球出屏 → 按 RESET → 回 EDIT → 重画MISSED · 球出屏:看到球飞出去 → 心想「下次应该把板再放低 / 角度小一点」→ 学到经验STUCK · 球卡住:看到球停在某块板上 → 心想「这块板太平了 / 摩擦消耗光了」→ 调整板倾角| 维 | 分 | 理由 |
|---|---|---|
| 30 秒可理解 | 8 | 提示 + 视觉自解释;玩家第一次画板就能 GO 看到物理 |
| 操作反馈 | 9 | 虚线预览 + 板变实线 + 球反弹粒子 + 通关爆炸 |
| 核心循环 | 9 | 编辑→模拟→看结果→重排 节奏完整且有节制感 |
| 复玩动力 | 8 | 6 关 + 每关多解 + 最少板挑战 + UGC 分享潜力 |
| 爽感 | 8 | 球进筐瞬间 + 通关爆 32 粒 + PERFECT 金色字 |
| 策略空间 | 9 | 每关板数限制强制思考;多种解法 |
| 开发完成度 | 8 | 445 行单文件,6 关稳定;物理引擎自洽;输入完整 |
| 商业扩展潜力 | 9 | Incredible Machine / Brain It On! / Cut the Rope 品类 LTV 高;UGC 关卡天然 |
| 综合 | 8.5 | 8/8 ≥ 8(除 30 秒理解 8 / 复玩 8 / 完成度 8 边缘但达标) |
综合 8.5/10 → 判 GO
俄罗斯方块 lite · 7 种方块下落 · 消行得分 · 顶到顶 = GG
点击地图节点放置塔 · 自动攻击 · 10 波敌人 · 守住基地
鼠标瞄准 + 单击发射 + 3+ 同色相邻 = 消除 + 浮动消失 + 通关或泡泡触底
鼠标瞄准 + 单击释放 + 同级球碰撞自动合成升级 + 容器顶部红线 = Game Over
—
鼠标按住 + 快速划过 = 切水果。划炸弹 -1 HP,漏水果 -1 HP,HP=3 = Game Over