怎么玩
这是一款把「瞄准」和「读物理」分开的游戏。你只控制发射那一瞬间的速度向量,之后完全交给引力场。所以真正要想的不是往哪打,而是让包裹在什么时候经过哪颗星的旁边——擦过去会被拉弯一点,太近就撞没了。
做的时候最花时间的是那条预测虚线。它必须和真实飞行用同一份积分代码,否则玩家会学会「不信虚线」,这游戏就废了。现在预览和飞行共用同一个步进函数,都是固定 1/120 秒一步,看到什么就飞出什么。
- 关卡
- 24 关 / 4 章 × 6 关
- 天体类型
- 4 类
- 每关发射
- 3 次(1 次 3 星 / 2 次 2 星 / 3 次 1 星)
- 引力常数
- G = 2400(游戏内单位)
- 积分步长
- 1/120 秒,半隐式欧拉
- 轨迹预测
- 120 步
- 满星
- 72 星
操作
一发送出去之后
按下起点附近,拖到某个方向和距离,力度条会告诉你这一下有多大;松手,包裹就带着那个速度出发。它没有推进器,中途不能再改方向。你能改的只有下一次发射,而每关只有 3 次发射。
飞行按固定步长推进:每一步先按当前所有天体的引力累加加速度,再更新速度,最后更新位置。步长锁在 1/120 秒,和屏幕刷新率无关——60Hz 和 120Hz 的机器上,同一发会落在同一个地方。
引力是怎么算的
每个有质量的天体都给包裹一个指向自己的加速度,大小是 G 乘质量再除以距离平方,游戏里 G 取 2400。距离越近拉得越狠,所以「擦边」和「正对」是两种完全不同的结果:前者能把一条直线掰成弧线,后者通常就是一次撞毁。
卫星会沿圆轨道公转,它的引力中心每一帧都在动;黑洞的质量大得多,还有一个进去了就回不来的事件视界。这两种让「算准一次」不够用,得连时间一起算。
- G = 2400,加速度按 r² 衰减;
- 固定步长 1/120 秒,半隐式欧拉积分,帧率不影响轨迹;
- 多天体引力逐帧叠加,不做简化近似;
- 飞出边界、撞毁或速度几乎归零,都算这一发失败。
六种天体各管什么
六种东西各自只改一条规则,这样你看到形状就知道该怕什么。它们按章节逐步引入:第一章只有行星和卫星,第四章才会把传送门和黑洞摆到同一张图里。
- 行星:吸引包裹,贴上表面即撞毁,是最常用的「拐弯工具」;
- 卫星:沿圆轨道公转,引力中心随时间移动,考验发射时机;
- 黑洞:引力极强,进入事件视界直接失败,通常要绕着走;
- 小行星带:一圈环形碰撞区,能穿过去但角度要挑;
- 风场:矩形区域里持续施加一个固定方向的力,会把轨迹慢慢掰偏;
- 传送门:成对出现,从 A 进去按原速度从 B 出来,方向保留。
那条 120 步的虚线
瞄准时,画面上会从起点延伸出一条虚线,最多 120 步。它不是拿一条抛物线糊弄你:预览调用的就是飞行用的同一个步进函数,把当前瞄准的速度代进去跑 120 步,遇到天体表面、事件视界或出界就提前截断。卫星的公转位置也按同样的时间推进,所以虚线会跟着它动。
这条线让「试错」变成「推理」。你可以先把方向拖到某个角度,看虚线从哪颗星旁边擦过去,再微调力度让落点往收件环靠。发射失败后,上一发的轨迹会留成一条很淡的残影,方便对照差在哪里。
三次发射与三颗星
每关给 3 次发射机会。第 1 发送达记 3 星,第 2 发 2 星,第 3 发 1 星;三发都没到就留在这一关,可以重来。24 关满星是 72 星,标题屏和选关屏都会显示你目前拿到多少。
撤销键会把状态退回上一次发射之前,残影也一起退掉,方便你把刚才那一发换个角度再来。它不算额外消耗:撤销的是「刚才那次」,不是多发一次。
关卡是怎么排的
24 关用固定种子生成,四章各 6 关,同一关每次打开布局完全一致。章节不是换皮:第一章只教「借一颗星拐弯」,第二章加卫星的时间差,第三章把风场和小行星带叠进来,第四章才把传送门与黑洞放在一张图上。
关卡数据里记着每关的星数、通关状态和用掉的最少发射数。这些只写在本机浏览器,不上传、不跨设备同步。
常见问题
- 虚线和实际飞行会不一样吗?
- 不会。两者调用同一个积分函数,步长都是 1/120 秒。唯一会变的是卫星在飞行途中继续公转,而预览也按同样的时间把它算进去了。
- 为什么总撞在行星上?
- 引力按距离平方增长,越近拉得越猛。把方向往外偏几度,让包裹从行星侧面擦过去,通常就能得到想要的弧线。
- 撤销会扣发射次数吗?
- 不会。撤销把状态退回上一次发射之前,那一发视为没发生过,残影也会一起清掉。
- 进度会同步吗?
- 不会。没有账号也没有服务端,星数、通关状态与最少发射数都只存在当前浏览器里。