开发日志 #3:武器、三种敌人与第一个 Boss
两把武器、三种敌人、一个会分两个阶段跟你打的 Boss——还有一个让我折腾了很久的「顿帧」。
这周把战斗从「能打」推到了「要读招」。
之前你能砍、能闪,但对面基本是沙包。现在不一样了:手里有两把完全不同的武器,路上有三种会用不同方式弄死你的敌人,关底还站着一个打起来需要记住招式的家伙。
先说一句:本文所有表格里的「帧」都是 1/60 秒。60 帧 = 1 秒。看到「前摇 30 帧」,意思是「0.5 秒之后这一刀才落下来」。
一、手里有两把家伙
按 1 是刀,按 2 是枪。只能站着或走路时换,出招途中换不了——故意的,不然连段就没有代价了。
刀:四段快攻
刀子短,但快,而且越砍越重。
| 段数 | 前摇 | 判定 | 收招 | 伤害 | 距离 |
|---|---|---|---|---|---|
| 第一段 | 6 帧 | 6 帧 | 18 帧 | 10 | 50 px |
| 第二段 | 8 帧 | 7 帧 | 18 帧 | 12 | 54 px |
| 第三段 | 9 帧 | 8 帧 | 18 帧 | 14 | 58 px |
| 第四段 | 11 帧 | 9 帧 | 20 帧 | 24 | 62 px |
第四段伤害翻倍、击退 220,收招也更长。也就是说:前三段是试探,第四段是兑现——但第四段打空,你会站在原地被人反手砍一刀。
枪:三段长距
枪出手慢一点,但手长得多,第三段还会整个人往前扑 140 px。
| 段数 | 前摇 | 判定 | 收招 | 伤害 | 距离 |
|---|---|---|---|---|---|
| 第一段 | 8 帧 | 7 帧 | 20 帧 | 9 | 78 px |
| 第二段 | 10 帧 | 8 帧 | 20 帧 | 11 | 82 px |
| 第三段 | 12 帧 | 10 帧 | 24 帧 | 22 | 88 px + 突进 140 |
打起来的感觉差别很明显:
- 刀:贴上去换血。前摇短,能抢在对方出手前打断,代价是必须站在危险距离。
- 枪:先量距离再出手。你可以在刀客的攻击范围外戳他,但戳空的那一下收招够长,够他冲过来。
两把武器共用同一套蓄力(长按超过 12 帧进入蓄力,1 秒一段、2 秒两段、3 秒强制释放),但满蓄伤害不一样:刀 42,枪 36。刀更赌,枪更稳。
二、路上三种敌人
| 敌人 | 血量 | 打法 | 怎么处理 |
|---|---|---|---|
| 刀客 | 80 | 发现你就往前压,三连砍,第三下变蓝霸体 | 前两下能打断,第三下别硬碰 |
| 弓手 | 55 | 保持 180 px 以上,拉弓射箭,箭速 420 | 血薄,但站着不动会被一箭一箭磨死 |
| 盾卫 | 130 | 走得慢,全程蓝霸体顶着盾 | 只有振刀能破防 |
刀客是最直白的:他会在 420 px 内发现你,冲到你面前抬手 24 帧(0.4 秒)再砍。前两刀的霸体是白的——你砍中就能打断他。但第三刀是蓝的,你砍上去只会「铛」一声,然后被砍。
弓手不打近身。你靠近,他后退;距离不够他不射。他的问题不是难打,是拖——你追他,他就把你往别的敌人那边带。
盾卫是这周最有意思的一个。他全身蓝霸体常驻,你正面砍他等于砍墙,伤害照扣但完全打不断他的动作。唯一的解法是振刀:3 帧起手、11 帧有效窗口,振中之后他会有 40 帧硬直——这就是你唯一能安心输出的时间。
振刀为什么值钱,从这张表就能看出来:一般轻击的顿帧只冻 2 帧,重击 4 帧,振刀 6 帧。整个游戏里最长的冻结帧留给最漂亮的那一下。
三、Boss:铁背刀客
血量 420,是盾卫的三倍多。他不止血厚——血量掉到一半会进二阶段,所有招式前摇变短、伤害变高,还会多出一招。
| 招式 | 一阶段前摇 | 二阶段前摇 | 伤害(一 / 二) | 判定 | 说明 |
|---|---|---|---|---|---|
| 横扫 | 30 帧 | 22 帧 | 12 / 14 | 白霸体 | 范围横,退后一步就能躲 |
| 重劈 | 46 帧 | 34 帧 | 22 / 26 | 蓝霸体 | 慢,但一下能要你四分之一血 |
| 突进斩 | 36 帧 | 28 帧 | 18 / 20 | 红霸体 | 只有二阶段有,往前扑 460 px |
设计上守了一条线:每一招都必须有前摇预警。你被打中,应该是因为你判断错了,而不是因为「他怎么突然就砍过来了」。
所以三招的预警长得都不一样:横扫抬手低、重劈把刀举过头顶停一拍、突进斩会先沉腰。颜色也不一样——白、蓝、红,对应三种霸体:白的能打断,蓝的要振,红的只能躲。
二阶段最明显的变化不是伤害,是节奏:横扫从 30 帧缩到 22 帧,也就是你有反应的时间从半秒变成三分之一秒。同一套招式,读招的成本翻倍。
四、这周最麻烦的一件事:顿帧
打击感有三分靠画面、七分靠「停」。你砍中人那一瞬间,如果画面完全静止几帧,手感就「实」;如果只是变慢,手感就「软」。
上一版我踩了个坑:我用引擎的时间缩放去做顿帧,想要的就是「停」。结果出来的是慢动作——因为时间缩放只影响画面和物理推进速度,帧计数照样在走,2 帧的冻结被拉成了肉眼可见的一次减速,像卡了一下。
更糟的是,时间缩放调到接近 0 之后,那个负责「几帧后恢复」的计时器也跟着停摆了,恢复时间变得不可预测。
这周重写了:不再动时间缩放,改成纯帧计数。
- 顿帧管理器维护一个剩余帧数,物理帧每走一步减一;
- 冻结期间,其他对象检查「现在是否冻结」,是就跳过这一帧的逻辑;
- 归零后一切照常,恢复时机精确到帧。
于是现在有三档冻结:
| 触发 | 冻结帧数 | 相当于 |
|---|---|---|
| 轻击命中 | 2 帧 | 33 毫秒 |
| 重击命中 | 4 帧 | 67 毫秒 |
| 振刀成功 | 6 帧 | 100 毫秒 |
差别很小,但手感是两回事:轻击是「哒」,重击是「咚」,振刀那一下你会觉得整个屏幕替你屏住了呼吸。
五、下一步
现在能打的东西齐了:两把武器、三种敌人、一个两阶段 Boss。接下来要做的不是加更多内容,是把已有的东西调准——哪些招该更快、哪些前摇该更长、Boss 二阶段是不是真的难而不只是烦。
到时候再写。