【游戏功能】
陨石明明砸空了,为什么地面还在烧人?很多玩家第一次见陨石术都有这个疑问:落点偏差半步,直击伤害一分没拿,人却站在坑边被火燎得直掉血——因为陨石术的账分两笔:砸的那一下,和烧的那三秒。今天拆陨石术,看"天降重物"怎么把一笔伤害演成两段威胁。
一、召石、坠地、留坑三段
陨石术的循环三段。召石段:法师向斜上方一引,一颗燃烧的巨石从画面外呼啸而入——入口在斜上而不是正上,石头的飞行轨迹带一条火尾,"从天外召来"的体量感全靠这条入场线。坠地段:陨石砸中落点,全屏闪橙、重震屏、环状爆屑——直击判定只认落点小圈,圈内的目标吃满重创,圈外的连皮都擦不着。留坑段:砸完的地方留下一个燃烧的火坑,坑口泛着橙红的热浪,站进坑或贴着坑沿的角色每零点几秒挨一口灼烧——坑是陨石的第二条命:直击是一次性的账,坑是留在地上的持续税。三段的核心是"重物改地形":陨石术真正投放的不是伤害,是一块三秒的禁区。
完整演示在这,默认自动循环:
fx-meteorfall
二、幂尔框架实现:抛物坠体与地形结算
陨石是一段二次加速的坠体,火坑是一个倒计时地形:
local MeteorFall = {}
local FALL_TIME, CRATER_LIFE = 0.6, 3.0
local DIRECT_R, BURN_DMG = 52, 8
function SL:CastMeteor(caster, target)
SL:PlayActorAct(caster, "cast")
local tx = SL:GetValue("actorX", target) + (math.random() - 0.5) * 40
SL:TossMeteor(tx, FALL_TIME, function(hx)
SL:FlashScreen("#f0883e", 0.12)
SL:ShakeCamera(9, 0.35)
SL:PlayBurst(hx, GROUND, "meteor_impact", 30)
if math.abs(SL:GetValue("actorX", target) - hx) < DIRECT_R then
SL:HitActor(target, 110)
SL:ShowTipAbove(target, "-110 陨击")
end
SL:MarkTerrain(hx, "fire_crater", CRATER_LIFE, function()
if math.abs(SL:GetValue("actorX", target) - hx) < 40 then
SL:HitActor(target, BURN_DMG)
SL:ShowTipAbove(target, "-8 烫", "#ff7b72")
end
end, 0.5)
end)
end
return MeteorFall
落点带四十像素的随机偏移——陨石术故意不做指哪砸哪:天降重物要有一点"天意",玩家掐的是时机不是坐标。火坑走 MarkTerrain 的地形标记:持续判定、周期结算,坑的存在与画面上的火口同生同灭。
三、坠体的画法与坑的余温
陨石本体三层:深褐的石芯、橙红的灼边、前缘一粒亮黄的热斑——加法混合叠出来,旋转用极慢速(快转像球,慢转像岩)。火尾是坠体的灵魂:每帧两粒向后的火屑,密度随坠速增加——尾焰越急,砸下来的势能越大,观众的脖子会替石头较劲。落地的规格必须顶格:全屏橙闪、九像素震屏、三十粒爆屑——全技能最大的期待值配最重的一次释放。坑的演出走"余温":坑口的橙红脉动随剩余寿命衰减、坑沿的火星越来越稀——坑在慢慢冷下来,玩家读得到"还能站回去"的倒计时。灼烧的数字要小("-8 烫"),与直击的"-110"拉开两个量级——坑的威胁是驱赶,不是输出。
四、天降系的定价与坑的礼节
陨石术的账要跟同门划清。它比火墙多的是"重":直击的一百一十点是全技能最重的一档单体,代价是落点带随机、冷却给足——重与准不可兼得,是天降系的宪法。坑的礼节三条:其一,坑不追人——地形是死的,站出去就安全,这是它与人形持续伤害(鬼火环绕)的根本分野;其二,坑对双方生效——法师自己冲进坑同样挨烫,地形的公平性高于施法者;其三,坑不叠加——两颗陨石砸同一点,坑刷新时长不叠伤害,地皮不许复利。回看玩家那个疑问就有了答案:砸空不是白砸,是法师用一百一十点的直击换了一块三秒的禁区——拆墙的锤子砸偏了,钉子还留在地上。召石有体量、坠地有规格、坑有冷热、三条礼节管住地皮——四件齐了,天降才既是重锤也是棋子。
五、坑位战术:把人引进自己砸的坑
随机落点逼出来的玩法比指哪砸哪丰富得多。落点带四十像素偏移意味着"掐时机"取代"掐坐标":玩家要算的不是怪的坐标,是召唤零点六秒后怪大概率在的位置——巡逻折返点又一次成为答案,陨石术的进阶手感与彻地钉、玄冰刺共享同一套预判心法。坑的战术价值同样有两层。第一层是拒止:坑横在狼怪的巡逻路径上,它走到坑边要么绕行、要么硬趟挨烫——一块三秒的地皮改写了半张地图的走位。第二层更狠:引狼入坑——气功波把怪往回推、推的方向正对着刚落成的坑,推与坑两个技能零配合代码,几何上天然咬合,狼怪被推进坑里连吃直击余温加灼烧,账面比陨石直击还疼。演示的自动演武里还有一处值得盯的细节:狼怪躲过直击后会有半步的迟疑——它"看到天上有东西掉下来"的惊惧演出。这块地皮的最后一个礼节是给美术的:坑的焦痕要在寿命走完后留两三秒更淡的残迹再彻底消失——火灭了坑还在,战场才有"打过仗"的记忆。
这轮写下来还有一句想留的话:这类技能最容易在迭代里走形——改一次数值、调一次粒子,最初的那个"为什么好看"就慢慢丢了。把每个技能最核心的那一句话钉在模块头部注释里,往后任何一次改动,先问一句还符不符合那句话,再动手。表现层的所有分歧,最后都要回到那句话上对表。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 它的爪子明明挥向了你,怎么落在自己脸上?夺舍的答案邪门到家:道士的魂钻进了狼怪的身子——占据三秒,这三秒里它每…
【游戏功能】 墙又不追人,怪为什么次次撞?水墙的定位写在物理里:它立在路中央六秒,是一块"会推人的地形"——狼怪巡逻的弧线扫…
【游戏功能】 左手五刀右手五刀,怎么就数得清是双刀?双刀交叉斩的答案在弧线上:左刀的弧向右扫,右刀的弧向左扫,两把刀的弧线在…
【游戏功能】 隔着半个屏幕扎草人,狼怪为什么跟着一抽一抽?咒怨娃娃的逻辑古老而瘆人:草人与目标结咒之后,草人就是它——针扎草…
【游戏功能】 雷云的全部机制就这一行:一朵乌云升到目标头顶,慢半拍地跟着挪,每一点二秒掉一道小雷。云不追人——它认的是"头顶…
【游戏功能】 跑赢了的怪,怎么反倒挨了烧?火焰冲刺的账目反直觉就在这:冲刺是位移,火径是遗产——人冲过去了,路留在原地烧三秒…