# Design · Rope Cut

## 视口 480×720

## 核心循环

```
菜单 → 选关 → 糖果挂在绳子顶 → 玩家滑动切绳
绳断 → 糖果受重力 + 摆动 → 收集路径星 → 落入盒子 = 通关
或 出屏 = 重玩本关
```

## 数据结构

```javascript
LEVELS = [{ ropes:[{anchor,length}], stars:[[x,y]], box:[x,y,w,h] }]
S = {
  candy:{x,y,vx,vy,r:15},
  ropes:[{anchor,length,cut:false,attached:true}],
  stars:[{x,y,r:10,collected}],
  box:{x,y,w,h},
  lvl, totalStars, cuts
}
```

## 物理

- 重力 G=600 px/s²
- 绳子约束：球距离 > length 时拉回 + 切向速度
- 摩擦 0.99
- 切绳判定：线段相交（拖动起终点 vs 绳子两端点）

## Juice 4

- J1 弹字「✂ / ⭐ / ✓」
- J2 糖果摆动（绳子约束）
- J3 拖动预测线（白虚线）
- J7 关名 + 星收集 HUD

## 难度 3 问

- Q1 ✓ 菜单 + 第 1 关糖果立即可见
- Q2 ✓ 第 1 次切绳即时摆动反馈
- Q3 ✓ 8 关递增 + 星收集驱动重玩

## 8 关设计

| # | 难度 | 配置 |
|---|---|---|
| 1 | 易 | 1 绳 + 3 星密 |
| 2 | 易 | 2 绳分叉 + 3 星 |
| 3 | 中 | 1 长绳摆动 |
| 4 | 中 | 1 短绳 + 远星 |
| 5 | 中 | 偏移盒子 |
| 6 | 难 | 2 绳交替（先切哪根）|
| 7 | 难 | 长绳 + 盒子偏移 |
| 8 | 难 | 3 绳协调 |
