【游戏功能】
泉水是 MOBA 的绝对安全区:站进泉水圈,血蓝狂回、攻击无效——泉水是全图最强的靠山,也是全图唯一不能追进去的地方。今天拆泉水恢复的表现,看"安全区"的规则怎么做出回家的安心感。
一、残血、回泉、满状态三段归途
泉水的归途三段。残血段:血条跌破四成亮红灯,回泉的决策自动触发——残血的狼怪还在后面追,回头键按下去的每一步都是逃命。回泉段:人物冲进泉水圈,血条蓝条以肉眼可见的速度狂回——回血的光柱从泉心升起,血量和蓝量双条齐涨。满状态段:血蓝双满的瞬间全身金光一闪,人物转身出泉再战——满状态的出泉是重启,不是结束。三段的核心是"泉水不可侵犯":狼怪追到泉水边必须停步——泉水圈的边界就是 MOBA 世界的规则底线。
完整演示在这,默认自动循环:
fx-fountain
二、幂尔框架实现:回泉判定与恢复光柱
回泉按位置进圈判定,恢复按秒回血回蓝:
local Fountain = {}
local KEY = { SPRING_R = 56, HP_REGEN = 30 }
local inSpring = false
function FT.Tick(dt)
local px = SL:GetValue("actorX", "player")
local dist = math.abs(px - SL:GetValue("springX"))
local wasIn = inSpring
inSpring = dist < KEY.SPRING_R
if inSpring then
-- 泉中: 血蓝狂回
if not wasIn then
SL:PlayFxAt("spring_enter", px, SL:GetValue("actorY"))
SL:ShowSystemTips("回泉 — 血蓝狂回!")
end
SL:SetValue("hp", math.min(100, SL:GetValue("hp") + KEY.HP_REGEN * dt))
SL:SetValue("mana", math.min(100, SL:GetValue("mana") + 30 * dt))
-- 回血光柱粒子
if math.random() < dt * 16 then
SL:PlayFxAt("heal_beam",
px + (math.random() - 0.5) * 60,
SL:GetValue("actorY") - 10 - math.random() * 30)
end
-- 满状态: 自动出泉
if SL:GetValue("hp") >= 100 then
SL:ShowSystemTips("满状态! 出泉再战")
SL:MoveActorX("player", 380, 1.5)
end
end
end
function FT.Render()
if inSpring then
-- 泉中回血: 双条加光效
SL:DrawBarGlow("hp_bar")
SL:DrawBarGlow("mana_bar")
end
end
return FT
满状态自动出泉是泉水的礼仪:泉水只管恢复不管挂机——满了不走的玩家是在浪费全队的时间。
三、光柱粒子与泉水的威慑
回血的光柱粒子是泉水的视觉语言:蓝色光柱从泉心向上喷、粒子密度和恢复速度同步——粒子越密恢复越快,光柱就是恢复速度的可视化。泉水圈的边界要醒目:圈沿的双线描边在暗色底上一眼可辨——边界的清晰是对进攻方的警告也是对防守方的承诺。狼怪的追击止步于泉水圈沿:狼怪 AI 追到圈沿自动停下徘徊——追击的止步线就是泉水的威慑线,狼怪徘徊的剪影是泉水威慑力的具象。最后,满状态出泉的金光一闪是重启的仪式:金光闪过、状态栏双条全满、人物转身出泉——出泉的一瞬就是新一轮战斗的开幕。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 威压诀的全机制就一句:把气提到刀上,脚下荡开一圈威压场——圈里的怪刀软一半、出手慢半拍,你的刀对它加五成;怪不…
【游戏功能】 vd = hot and base 2 or base ——一行两倍的乘法,藏在焚祭全部的痛感里:刀翻倍的代价…
【游戏功能】 大怪蓄力蓄到发亮的那一发重击,凭什么有信心接下来?多数玩家的答案是"闪",可闪有冷却、有前摇、有失误——舍身盾…
【游戏功能】 战斗组翻到一笔没人认领的异常:玩家的血条在没有挨打记录的情况下稳定下滑,一秒四点,战斗日志里攻击来源是空的。排…
【游戏功能】 数值组翻过一笔扯皮的账:同一只头目,A 队三分钟放倒,B 队磨了十一分钟还灭了——装备差不到一成,输出差了一倍…
【游戏功能】 借刀符的全机制就一句:一张符掷中谁,谁就中招六秒——六秒里它的爪听你的,转身撕咬自己人,符效一过它回过神来第一…