【游戏功能】
磨刀师傅的行话是"三分切七分磨":刀的锋利七成在磨功——贴石的角度、推拉的节奏,磨对了刀刃自然利。今天拆磨刀石的表现,看"锋利度"这个隐形数值怎么被一推一拉磨出来。
一、贴石、推拉、涨锋三段循环
磨刀的循环三段。贴石段:刀身贴住磨石面、刀刃朝前压一个角度——贴石的角度决定磨出的是锋刃还是卷刃。推拉段:刀沿石面来回推拉,刀口与石面摩擦溅出火星碎屑——推拉的方向每次反转,磨痕交错才是真磨。涨锋段:锋利度随推拉一点点涨——涨到八成以上,试刀断纸一挥就断;不足八成,纸只留一道白痕。三段的仪式感在"涨":锋利度条的颜色从灰到金到绿——灰是钝、金是将利、绿是已成,颜色的三次换挡就是磨刀的进度播报。
完整演示在这,点磨一下、试刀:
fx-whetstone
二、幂尔框架实现:推拉动画与锋利度注入
推拉做往复插值动画,锋利度按次注入:
local Whetstone = {}
local KEY = { GAIN = 8 }
local sharp, slide = 0, nil
local dir = 1
function WS.Grind()
if slide then return end
dir = -dir
slide = { t = 0, dir = dir }
sharp = math.min(100, sharp + KEY.GAIN + math.random() * 4)
SL:PlaySfx("grind_stone")
SL:PlayBurst(SL:GetValue("bladeX") + 20,
SL:GetValue("stoneY") - 6, "spark", 4)
SL:ShowSystemTips("锋利度 " .. math.floor(sharp) .. "%")
end
function WS.Tick(dt)
if not slide then return end
slide.t = slide.t + dt * 2.2
-- 刀沿石面往复: 三角插值
local k = slide.t
local x = k < 0.5
and (200 + 240 * k * 2)
or (440 - 240 * (k - 0.5) * 2)
SL:SetActorX("blade", x)
SL:SetActorRotate("blade", -0.06)
-- 火星碎屑: 推拉时偶尔溅出
if math.random() < dt * 14 then
SL:PlayBurst(x + 20, SL:GetValue("stoneY") - 4, "spark", 4)
end
if slide.t >= 1 then slide = nil end
end
function WS.TestCut()
if sharp < 20 then
SL:ShowSystemTips("还不够利 — 先磨")
return
end
SL:PlayFxAt("cut_line", 160, 80, 0.6)
if sharp >= 80 then
SL:ShowSystemTips("一刀断纸! 锋利 " .. math.floor(sharp) .. "%")
SL:PlaySfx("paper_cut")
else
SL:ShowSystemTips("纸没断透")
SL:PlaySfx("whiff")
end
end
return WS
推拉的插值用三角波(前半程去、后半程回)——往复的节奏是磨刀的动作记忆。
三、锋利档位与试刀的断言
锋利度的三段配色是仪表的语言:灰是钝、金是将利、绿是已成——条的颜色换挡比数字跳变更醒目。试刀断纸的判定线定在八成:线下纸留白痕、线上一挥而断——判定线的意义是给"继续磨还是试一试"一个明确的分界。试刀的动画是纸裂开的一条白线从左向右延展——纸被撕开的视觉就是锋利度的具象。最后,磨石的湿渍别省:石面上几道浅蓝水渍是磨刀必须泼水的常识——干磨的刀会退火,湿渍是手艺的细节,也是画面的点缀。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 威压诀的全机制就一句:把气提到刀上,脚下荡开一圈威压场——圈里的怪刀软一半、出手慢半拍,你的刀对它加五成;怪不…
【游戏功能】 vd = hot and base 2 or base ——一行两倍的乘法,藏在焚祭全部的痛感里:刀翻倍的代价…
【游戏功能】 大怪蓄力蓄到发亮的那一发重击,凭什么有信心接下来?多数玩家的答案是"闪",可闪有冷却、有前摇、有失误——舍身盾…
【游戏功能】 战斗组翻到一笔没人认领的异常:玩家的血条在没有挨打记录的情况下稳定下滑,一秒四点,战斗日志里攻击来源是空的。排…
【游戏功能】 数值组翻过一笔扯皮的账:同一只头目,A 队三分钟放倒,B 队磨了十一分钟还灭了——装备差不到一成,输出差了一倍…
【游戏功能】 借刀符的全机制就一句:一张符掷中谁,谁就中招六秒——六秒里它的爪听你的,转身撕咬自己人,符效一过它回过神来第一…