【游戏功能】
拆一行代码:
SL:SetSuperArmor(self_, true)
一个布尔开关,打开之后伤害照吃、受击帧照播,但硬直没有了——这就是霸体。别小看这一个开关,它背后是"打断权"的重新分配:谁在什么时刻有权让谁的动画停下来。今天讲霸体突进,讲的就是这个权的表演。
一、硬吃三刀的视觉逻辑
霸体的表现难点在于"挨打但不能有挨打样"。普通受击有三件套:后仰、顿帧、数字弹起。霸体状态下后仰和顿帧必须删掉,只留数字——而且数字要变样:金色、小一号、带"不退"后缀,告诉玩家"这刀有效,但他没停"。光有删减还不够,要加东西补:金光罩体呼吸、脚下步频不乱、被砍中的接触点照常炸花。三刀砍完,突进的脚步位置正好压过狼怪半个身位,顺手把它撞开半步——你的刀是我的背景音,我的肩才是正文。霸体结束的瞬间,金光散去、恢复普通受击,玩家立刻能从下一次挨打的后仰里读出"他没霸体了"。
完整演示在这,默认自动循环,可调霸体时长:
fx-unstop
二、幂尔框架实现:硬直的 selectively 屏蔽
霸体不是无敌,伤害结算照走,只屏蔽硬直。幂尔框架里受击回调里做一层判断:
local Unstop = {}
local KEY = { DURATION = 3 }
function Unstop.Start(self_)
SL:SetSuperArmor(self_, true)
SL:PlayFxAt("gold_aura", SL:GetValue("actorX", self_),
SL:GetValue("actorY", self_))
SL:ScheduleOnce(function()
SL:SetSuperArmor(self_, false)
SL:ShowSystemTips("霸体结束")
end, KEY.DURATION)
end
-- 引擎受击回调
function Unstop.OnBeHit(self_, attacker, damage)
local hx = SL:GetValue("actorX", self_) + 16
local hy = SL:GetValue("actorY", self_) - 58
SL:PlayBurst(hx, hy, "hit_spark", 9) -- 接触火花永远要
SL:DeductHp(self_, damage)
if SL:GetValue("isSuperArmor", self_) then
-- 霸体: 小号金字, 不打断移动
SL:ShowHitNum(self_, damage, "armor_small")
SL:PlayActorAct(self_, "run") -- 顶回移动帧, 不给后仰
-- 反而把攻击方顶开半步
local sx = SL:GetValue("actorX", self_)
SL:SetActorVelocity(attacker, 220, 0)
SL:ScheduleOnce(function()
SL:SetActorVelocity(attacker, 0, 0)
end, 0.12)
else
-- 普通状态: 全套挨打三件套
SL:ShowHitNum(self_, damage, "damage")
SL:PlayActorAct(self_, "stuck")
SL:FreezeFrame(0.05)
end
end
return Unstop
关键一行是受击后把动画顶回移动帧——引擎默认会切受击帧,霸体时要抢回来,这一帧的争夺就是整个表现的核心。
三、打断权的攻防价值
霸体的强度全在"打断权"三个字上。它不减免伤害,所以数值上永远平衡;它改变的是节奏——狼怪三刀换来的不是连招,是三段数字加半步反弹。表现上必须把"反弹"做出来:攻击方被顶开那半步是霸体尊严的具象化,没有它,玩家只看到"他没停",有了它,玩家读到"他被弹开了"。半步的距离要短,12 帧之内速度清零,弹得太远就成了击退,性质全变。
霸体时长的档位也有讲究:三秒上下最舒服,两秒不够穿过一个狼怪群,四秒又太嚣张。结束前的 0.5 秒金光要提前变淡闪烁——预告结束和预告开始一样重要,玩家靠这个决定要不要继续把头伸过去。霸体没散光就挨了个后仰,是最常见的负面反馈,源头都是少了这个渐隐闪烁。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 heat = heat + 1; if heat = 3 then rest = 1.6 ——两行管刀温的代码…
【游戏功能】 兄弟俩打一只狼,哥哥攒了三层劲自己放,一层加二十五;弟弟站在旁边干瞪眼——直到有人把劲递了过去:同样的三层,过…
【游戏功能】 有篇纠错单写得像小说:同一只狼,有人打它半小时血线稳如老狗,有人三分钟放倒——排查到最后发现,会打的那个从头到…
【游戏功能】 追着你满场跑的狼怪,为什么绕过一根石柱就懵在原地?脱影的答案藏在柱子背后:视线被石柱掐断一秒二,它脑子里"你"…
【游戏功能】 巡查群里有人喊邪门:同一套连招,昨天刀刀见血,今天刀刀被挡——查录像看到第三遍才看懂:狼怪学会了。他的出刀间隔…
【游戏功能】 if hand == last then acid = acid + 1 ——一行数手的判定,攒出了换手全部的…