Melon Cascade 攻略:堆水果、冲西瓜(2026)
亲自试试 — 立即玩 Melon Cascade
浏览器免费直玩,无需下载或注册。
melon_cascade.js(Playnesta 原创,MIT)里的常数,本场读取,不是引用第三方。已确认的常数:画布 480×360;罐子 x∈[120,360]、地面 y=336;危险线 y=70、预警线 y=92、投放高度 y=32;11 级水果,半径 11/14/18/23/28/34/40/46/52/57/62(樱桃到西瓜);掉落队列只出最小三级(樱桃、草莓、葡萄),比例 [0,0,0,1,1,2];合成第 n 级得 (n+1)×(n+2)÷2 分;两颗西瓜互相抵消并加 100 分;首次合成西瓜触发胜利事件;静置水果越过危险线则终局;守卫常数为合成 100ms、静置 900ms、投放冷却 320ms;最高分存于本浏览器 pn_melon_cascade_best;build 接受 ?seed= 与 ?tier=0..10。下面是策略层;操作说明见游戏页。
1. 瞄准的是列,不是缝
罐子 240px 宽,手持果只是预览,不是物理体,落地前不与任何物体接触。瞄准移动的是手持果中心,clampAim 会把水果边缘留在墙内 2px,因此最宽的西瓜(半径 62)中心只能在 184–296 之间。最后几级水果根本丢不到极边缘,终局布局要围绕还能落下的列来规划。
一次投放后 320ms 内不会生成下一颗。利用这个窗口看堆落点,而不是连点。NEXT 面板显示的是手持果之后的下一颗,所以你始终能看见两步。
2. 建两列,留出中间通道
堆向上长,危险线在 y=70,离投放高度只差 38px。单列堆在中间最快触线,因为每颗新果都落在它顶上。把罐子拆成左右两列,并保留中间的垂直通道:通道是某一侧满了时水果能一路落到底的地方,也是最大水果能安定而不把邻居推过线的地方。
避免把同级水果连续丢进同一落点。同级相触立刻合成,第二颗相同水果落上去会立刻升一级,整列高度跳一整格。想要高度就丢不同级;想要得分就刻意把同级丢进能移动的缝里。
3. 合成数学:前期清小果,后期冲大分
合成第 n 级得 (n+1)×(n+2)÷2 分,阶梯为 1、3、6、10、15、21、28、36、45、55,两颗西瓜抵消得 100。大分只在顶端出现,而到顶端要一条链上合成 11 次。前期目标是清小果腾空间,不是追分:樱桃合成草莓只值 1 分,但移走了一个物体、空出一个槽位。
首次合成西瓜会触发胜利事件,但本局不会停。把那一刻当里程碑,不当终点:罐里已经装下了最大的物体,之后每颗新果都要围绕它落。
4. 两颗西瓜会抵消,别误触
两颗西瓜相触不会变成第十三级,它们互相抵消并加 100 分——这是本作单次最高分,也是罐里同时留两颗西瓜的理由。难点在几何:两个半径 62 的物体占满 240px 罐子的大部分,必须分落左右两侧并留出通道,而且两颗都要先静止,合成守卫(100ms)与碰撞检测才能触发。
刚落下的西瓜带着横向速度,而罐壁是故意做无摩擦的,它能滚很远。等它停稳再落第二颗,否则第一颗在错误角度撞上第二颗,把邻居推过危险线。
5. 读懂三个守卫,别与它们对抗
三个计时器决定什么时候算数,全部来自 build:
- 新合成的水果 100ms 内不能再次合成(
MERGE_GUARD_MS)。同级相触却没反应,等一下;配对被保留,下一次碰撞轮次会触发。别往上面再丢第三颗「帮忙」——通常只会堆出更糟的山。 - 新落下的水果 900ms 内不算「静置」(
REST_GUARD_MS)。水果在这 900ms 内越过危险线不会终局,因为游戏只检查已经停住的水果。这就是为什么弹到顶的落果不一定立刻结束。 - 投放限制每 320ms 一次(
DROP_COOLDOWN_MS),build 用 timeout 强制,连点不会加速。
物理步还把垂直速度限制在每帧 9px(TERMINAL_VY),每帧施加滚动阻力(水平速度×0.93、角速度×0.9)。水果在地面很快停,但保留少许横向漂移,所以堆即使停止投放也会慢慢偏移。
6. 危险线不是罐子的尽头
终局只在静置水果的顶边低于 y=70 且速度低于每帧 0.35px 时触发。预警线在 y=92,任何非手持水果的顶边高于它时虚线变红。两条线之间是危险区:速度足够快(>0.6)的水果被忽略,但一旦它停住本局就结束。
实践规则:堆的最高点到了预警线附近就停投,并利用 900ms 静置守卫让临界水果停稳再决定。终局画面写「No room left」,提供 Play again,清空所有水果、重置分数与队列,并触发重新开始事件。
7. 用 URL 参数演练特定局面
build 接受两个查询参数,均已在已发布代码中验证:
?seed=123钉住随机序列,每次加载落果顺序相同。用来练习解不开的布局,或在相同水果下比较两种策略。?tier=0..10强制每次掉落该级。?tier=0练樱桃堆叠与小合成;?tier=9练在不溢出的前提下把蜜瓜摆到一起。超出范围的值被忽略,回到正常随机池。
种子是 build 自己的生成器产生的 32 位无符号整数,掉落池为 [0,0,0,1,1,2],因此即使不钉种子,第一颗也是樱桃的概率为 3/6。
FAQ
这和游戏页的规则有什么不同?
游戏页讲操作:移动指针或在触屏上拖动瞄准,点击或轻触投放,左右箭头或 A/D 移动瞄准 12px,空格/回车/下箭头投放,终局画面点击 Play again。本指南假设你已会这些,讲上一层:建哪一列、何时合成、两颗西瓜怎么抵消、三个守卫做什么、危险线何时真正结束本局。
为什么同级相触却没有合成?
合成守卫在水果生成后 100ms 内禁止再次合成,build 同时注册 collisionStart 与 collisionActive,配对会在每个物理步重新提供,直到守卫过期。等零点几秒。如果仍不合成,其中一颗可能还在 900ms 静置窗口内,或速度高于危险检测使用的阈值;无论哪种,往上面再丢第三颗只会更糟。
看起来没过线,本局也会结束吗?
只有静置水果的顶边低于 y=70 且速度低于每帧 0.35px 时才结束。还在弹跳或滑动的水果被忽略,生成不足 900ms 的水果也不检查。所以画面可能已经堆满,游戏却在等堆稳定,然后突然结束。这就是预警线 y=92 的读法:把它当作停止投放的最后时刻。
NEXT 面板到底显示什么?
队列保存两级:即将投放的和下一颗。水果生成时第一级从队列移除,第二级变成预览。掉落池是三颗樱桃、两颗草莓、一颗葡萄,所以预览永远是这三级之一。
没有随机落果时怎么练习?
用 ?seed= 重放序列,或用 ?tier= 强制每次掉落同级。两者都由 build 自己从 URL 读取,非法值被忽略。最高分只存在本浏览器的 pn_melon_cascade_best 下,页面不发布平均分或与他人比较。
在哪里玩?
就在本站 Melon Cascade 页面。把水果丢进罐里、同级相触升一级直到西瓜的玩法在别处以注册商标名出售,因此本 build 由 Playnesta 从零编写,没有字节复用的游戏文件:等级表、罐子几何、合成规则、危险线、HUD、输入处理与渲染器(melon_cascade.js)、样式表(cascade_style.css)、分析桥与触控垫片全部为 Playnesta 原创(MIT,见包内 LICENSE.txt)。唯一随包 shipped 的上游代码是物理引擎 matter-js 0.19.0(MIT,commit 07aec9ff5ed7e09da6106c73587716d7a1165125),逐字节 vendor 为 vendor/matter.min.js(sha256 bdf68e297d6c4ec85b8dd693b8781d99db0090449c9a3ba69948eede08c9275a),许可证见 vendor/matter.LICENSE.txt;它只提供刚体物理,不提供渲染、输入与玩法。所有水果都在运行时用 canvas 基元加系统 emoji 字形绘制,不 shipped 也不 fetch 任何位图、图标字体、音频或 webfont,运行时无任何外部请求。Playnesta Games 是本网页实现的开发者与发行商。