【游戏功能】
"冰刺地阵到底能扎多高?"——最高的冰凌从狼怪脚下冒出来的时候,把整只狼怪顶到了半空中。今天拆冰刺地阵的表现,看"从地面长出来"这个从下往上的方向怎么做。
一、凝聚、冒出、碎裂三段递进
冰刺的递进三段。凝聚段:寒气从狼怪脚下的地面渗出,地面上开始结霜——凝聚是冰刺的孕育期,结霜的颜色从浅白到深蓝。冒出段:冰凌从地面逐根冒出、每根从短到高长出来——冒出的冰凌从狼怪脚下开始、向两侧蔓延——从脚下冒出来的方向感是这套技能的核心。碎裂段:冰刺全部长齐后突然碎裂、冰碴四溅——碎裂把狼怪从高处摔下来、冰碴四溅。三段的节奏是"慢—快—碎":凝聚慢、冒出快、碎裂一瞬间——冰刺的三段是天然的节奏设计。
完整演示在这,默认自动循环:
fx-icespike2
二、幂尔框架实现:冰凌生长与碎裂粒子
冰凌按延迟逐根生长,碎裂时冰碴四溅:
local IceSpikes = {}
local KEY = { GROW_SPD = 120 }
local spikes = {}
function IS.Spawn(cx, count)
spikes = {}
for i = 1, count do
spikes[#spikes + 1] = {
x = cx - 30 + i * 14,
h = 0,
max = 30 + math.random() * 16,
delay = i * 0.12
}
end
end
function IS.Tick(dt)
local anyGrowing = false
for _, s in ipairs(spikes) do
if s.delay > 0 then
s.delay = s.delay - dt
anyGrowing = true
elseif s.h < s.max then
s.h = math.min(s.max, s.h + KEY.GROW_SPD * dt)
anyGrowing = true
-- 冰凌冒出时闪光
if math.random() < dt * 8 then
SL:PlayBurst(s.x, SL:GetValue("groundY") - s.h, "ice_spark", 2)
end
end
end
-- 全部长齐: 碎裂
local allGrown = true
for _, s in ipairs(spikes) do
if s.h < s.max then allGrown = false; break end
end
if allGrown and #spikes > 0 then
SL:ScheduleOnce(function()
IS.Shatter()
end, 0.8)
end
end
function IS.Shatter()
for _, s in ipairs(spikes) do
SL:PlayBurst(s.x, SL:GetValue("groundY") - s.h / 2,
"ice_shatter", 5)
end
SL:PlaySfx("ice_break")
SL:ScreenShake(0.22, 3)
spikes = {}
SL:ShowSystemTips("冰刺碎裂!")
end
return IS
冰凌的生长用高度插值——从零长到最大值的渐变让冰凌像"从地里长出来"而不是"突然出现"。
三、冰凌排布与碎裂的层次
冰凌的横向排布从狼怪脚下向两侧递减:脚下的冰凌最高、两侧的渐矮——中间高两边低的排列让冰凌阵有"从脚下爆发"的向心感。碎裂的粒子三层混色:冰蓝的碎晶、白色的高光、透明的冰雾——三色混合飞出才像"冰碎了"而不是"玻璃碎了"。狼怪被顶起的高度跟冰凌的高度联动:冰凌越高狼怪被顶得越高——物理的联动让冰凌的"力"有了方向。最后,碎裂后的地面上留几片冰渣不消——冰渣是冰刺存在过的证据,慢慢融化的冰渣是这套技能最好的余韵。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 if _shadowT 0 then spd = noShadow and 12 or 24 end ——一行…
【游戏功能】 魂卫的全机制就一句:杀掉小怪化一盏魂火跟着你走,每盏魂火两秒自动劈最近的大怪一口八点,至多三盏——「引魂!」按…
【游戏功能】 一道咒飞过来,硬吃是四秒里一秒十的钝疼——有没有第三条路?纸人替灾给的就是第三条路:贴一个纸人在身后,八秒里头…
【游戏功能】 挨打还能赚钱?水镜式的答案是:挨的刀七成存进镜里不扣血、三成照常疼,六秒后点「还镜」,存量乘一点五放成水炮——…
【游戏功能】 if _mirrorT 0 then SL:TipAboveMe("免疫") return end ——一道写…
【游戏功能】 远近战的矛盾怎么解?远战的答案是把怪挡在射程外,近战的答案是把人拖进射程内——缩地阵给的第三个答案最蛮横:圈只…