【游戏功能】
冰牙的突起判定就这一行:
fangs[#fangs + 1] = { x = base - 24 + i * 24, t = 0 }
三根冰牙从狼怪脚下等间距突起——冰牙突起的全部几何就这一行。可这一行的前面是"冻住一秒",后面是"冰碎带霜缓三秒",冻缓双效的衔接才是这套玩法的灵魂。今天拆开。
一、突起、冰封、带霜三段
冰牙的三段。突起:三根冰锥从狼怪脚下等间距刺出——锥体从地面拔地而起,冰蓝色渐变从底部浓到顶部淡,半秒内长到全高——突起的速度就是"冻"的视觉冲击。冰封:冰牙全高时狼怪冻一秒——冰封期狼怪定身,玩家的攻击对冰封目标加伤——冻住的一秒是输出的窗口。带霜:冰牙碎裂后冰封解除,狼怪身上挂一层白霜——带霜三秒移速减半,霜化后恢复正常——霜是冰的余韵,冻是冰的主餐。三段连起来:冰牙突起玩的是"冻缓双效的接力"——冻住的一秒是爆发窗口,霜缓的三秒是追击窗口,两个窗口接力,玩家从爆发无缝转入追击。
完整演示在这——点「冰牙!」看三根冰牙从它脚下刺出来:
fx-icefang
二、幂尔框架实现:冰牙生长与霜缓接力
幂尔框架里冰牙是带生长动画的冰锥列表:
local IceFang = {}
local FROZEN_TIME, FROST_TIME = 1, 3
local fangs = {}
function IceFang.Cast(target)
SL:PlayActorAct("player", "cast")
SL:ScheduleOnce(function()
local baseX = SL:GetValue("x", target)
for i = 1, 3 do
fangs[#fangs + 1] = {
x = baseX - 24 + (i - 1) * 24,
t = 0, phase = 1
}
end
SL:Freeze(target, 1)
SL:FlashScreen("#a5d6ff", 0.1)
SL:ShakeCamera(5, 0.25)
SL:ShowTipAbove(target, "冰牙!")
end, 0.22)
end
local function onTick(dt)
for i = #fangs, 1, -1 do
local f = fangs[i]
f.t = f.t + dt
if f.phase == 1 and f.t >= 1 then
f.phase = 2
SL:Unfreeze(target)
SL:ApplySlow(target, FROST_TIME, 0.5)
SL:ShowTipAbove(target, "带霜缓速")
end
if f.phase == 2 and f.t >= 2 then
table.remove(fangs, i)
end
end
end
SL:RegTick("icefang_tick", onTick)
return IceFang
冻和霜的接力写在 phase 切换的一行里:冰封结束时同一帧挂上霜缓——两个状态之间没有间隙,玩家冻住输出后紧接着追击霜缓的狼,节奏不断档。
三、等间距的排列与霜缓的接力
等间距二十四像素是冰牙的排列纪律:太密了三根冰牙糊成一坨,太疏了中间露出空隙狼怪从缝隙里跑——二十四刚好让三根冰牙覆盖狼怪体宽。冰封一秒加霜缓三秒的总控四秒:四秒的控场时间内玩家的输出窗口是一秒冰封加三秒追击霜缓——两段窗口接力的节奏就是这套玩法的灵魂。和冰冻术的分账写清楚:冰冻术是纯冻结(定住就完),冰牙突起是冻缓双效接力(冻完了还慢着)——前者的价值在"控住",后者的价值在"控完之后追击的窗口更长"。最后给表现组一条:冰牙碎裂时要有碎冰粒子往下落——碎冰粒子落地的声音和视觉效果,是"冰从有到无"的最后一帧,少了这一帧,冰牙的消失就像被删除了。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 控制技能的镜像问题是:锁住了怪,自己是不是也闲着?影锁把这道两难摆上台面:影锁四秒,它动不了、你也动不了——它…
【游戏功能】 打断为什么只有"清读条"一种?震魂偏要反过来——不清招、不断势,打在它读条半途的那一劲顺着招震进腑——中劲十秒…
【游戏功能】 蜂群为什么总是一只一只出?蜂王偏要让它们进化:放一只蜂王出来,杀掉小怪喂它——喂三只升一阶,三阶蜂王的毒刺一秒…
【游戏功能】 技能为什么总是不扣自己的血?血刃偏要反着来:开着血刃的每一刀先扣自己二血、命中回三血——净赚一但要打得中,空刀…
【游戏功能】 bn.t = bn.t - dt ——一行旗面倒计时的代码,撑起了破军旗全部的紧迫感:旗立三秒、圈内加攻三成,…
【游戏功能】 淬毒为什么要一毒到底?淬毒刃偏要一层一层叠:一刀淬一层毒、毒层一秒六地烂,六层封顶之后一刀下去毒伤三十六——叠…