【游戏功能】
从它头顶翻过去,落地的哪一秒最疼?答案是它转过身来之前的那半秒。燕返的全套设计都围着这半秒转:起跳掠过头顶、落在背刺位、反手一刀、对方还没转过身。今天拆燕返,看"位移+背刺"这对组合怎么把一次跳跃演成两次得分。
一、起跳、掠顶、背刺三段
燕返的循环三段。起跳段:剑尖点地,角色沿一道高弧线掠向狼怪——起跳本身就是闪避:狼怪的扑击有前摇,跳跃的滞空恰好让开爪线,"翻过去"与"躲过去"是同一个动作的两份收益。掠顶段:弧线的顶点恰好压在狼怪头顶上方,掠过时身后拖一道淡蓝弧影——掠顶是燕返的名字来源:燕子掠水,一刀掠怪,弧线的顶要"擦着"它头顶掠过,高一点像跳绳,低一点像撞头。背刺段:落在狼怪背后半步,反手一刀劈向后脑,大字"燕返"压顶——落点即背刺位:这次位移的目的地就是伤害的最大值点,跳与砍之间没有空拍。三段的核心是"落点即收益":位移技能的落地坐标从来不只是位置,燕返把落点直接定价成伤害倍率。
完整演示在这,默认自动循环:
fx-swallreturn
二、幂尔框架实现:抛物线位移与落地回调
跳跃是一段参数化抛物线,伤害挂在落地回调里:
local SwallowReturn = {}
local AIR_TIME = 0.7
local ARC_H = 150
local jumping = false
function SL:CastSwallow(actor, target)
if jumping then return end
jumping = true
SL:PlayActorAct(actor, "jump")
local sx = SL:GetValue("actorX", actor)
local ex = SL:GetValue("actorX", target) + 58 -- 背刺位: 目标身后半步
local t = 0
SL:ScheduleRepeat(0.016, function()
t = t + 0.016
local k = math.min(1, t / AIR_TIME)
SL:SetActorPos(actor,
sx + (ex - sx) * k,
GROUND - math.sin(k * math.pi) * ARC_H)
SL:DrawArcTrail(actor) -- 弧影跟手画
if k >= 1 then
SL:CancelRepeat()
jumping = false
SL:PlayActorAct(actor, "attack")
SL:HitActor(target, 95)
SL:ShowTipAbove(target, "-95 燕返")
SL:StunActor(target, 0.6) -- 半秒懵: 它转不过身
SL:ShakeCamera(5, 0.25)
end
end)
end
return SwallowReturn
落点的横坐标挂在目标的实时坐标上(加半步背刺位)——起跳时它往哪挪,背刺位就跟到哪,燕返的"落"因此永远踩得准。滞空零点七秒是双收益的账:够长,长到能跨过扑击的爪线;够短,短到对方转身之前刀已落下。
三、弧影与背刺位的演出
弧线是燕返的主视觉:淡蓝宽弧打底、白色细线提亮、顶点处撒两粒光屑——弧要"细长干净",它是燕子的飞行轨迹,不是彩虹。滞空期间角色本体换跳跃姿态、影子留在地面缩小一半——影子缩,人才显得高,这一小笔让一百五十像素的弧高看起来是真的。背刺那一刀的规格全面升档:紫蓝双色闪、五像素震屏、"燕返"大字——位移的终点就是爆点的起点,观众的情绪顺着弧线一路攒到落点。被翻过去的一方也有戏:半秒的懵加头顶问号——它明明看着人起跳,落地时人已在背后,这半秒"找不着北"正是背刺位的时差,演出与机制在这里说的是同一件事。
四、燕返的边界:位移的定价与落点法律
位移类技能立三条规矩。其一,滞空不无敌:跳跃中照常可被打——空中目标是更大的靶子,滞空无敌会让燕返变成"零风险闪避加背刺"的犯规组合;扑击掐得准的怪物照样能在空中把人拍下来,风险与收益才对表。其二,落点做钳制:背刺位若落在地图边界外,落点钳回边界内侧——位移的终点永远合法,这一钳顺手消掉"跳进墙里"的经典事故。其三,落点不叠加判定:一跳只结一次账——落地那一刀是位移的句号,句号之后回到普攻节奏,燕返不提供连跳。最后是定位对账:燕返的伤害低于大多数主攻技(九十五点,比万剑归宗的末剑还低一截),它的真实收入是"躲一次扑击加一次背刺位"的两份收益——位移技的伤害永远该给得保守,因为位移本身已经在付账。起跳躲爪、掠顶画弧、落地背刺,滞空不无敌、落点做钳制——五件咬合,燕子才返得漂亮。
五、翻不动的怪:位移技能的例外学
燕返遇到大体型怪怎么办?狼怪这个体型一跃而过,换成身位三倍高的巨物,一百五十像素的弧顶擦不到"头顶",掠顶变成撞山。位移技能的例外学就在这:跳跃参数跟着目标身位走——弧高按目标碰撞盒高度自适应抬高,滞空时间同比拉长,"从它头顶翻过去"这个语义在任何体型上都成立,代价是巨物头的燕返滞空更久、空中风险更大,天然的平衡不用额外设计。第二类例外是贴墙的怪:背刺位落在墙里,钳制逻辑会把落点拽回边界,但拽回之后"背刺"就不成立了——规矩是落点被钳制超过半步时,背刺降级为普通落地斩,位置收益如实打折,机制不撒谎。第三类是同样会跳的怪:对拍燕返,两只燕子空中交错——这种场面不用设计,各自的跳跃逻辑自然演绎,演示框架只负责让两次跳跃互不碰撞判定(滞空体不参与体积碰撞),空中错身本身就是最好的演出。最后是给新人的选型提醒:位移+背刺这类"落点定价"的技能,写第一个版本时先把落点的合法性验证写全(边界、体型、地面高度),再写伤害——落点错了伤害越漂亮越像事故,这个顺序反过来就是事故本身。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 它的爪子明明挥向了你,怎么落在自己脸上?夺舍的答案邪门到家:道士的魂钻进了狼怪的身子——占据三秒,这三秒里它每…
【游戏功能】 墙又不追人,怪为什么次次撞?水墙的定位写在物理里:它立在路中央六秒,是一块"会推人的地形"——狼怪巡逻的弧线扫…
【游戏功能】 左手五刀右手五刀,怎么就数得清是双刀?双刀交叉斩的答案在弧线上:左刀的弧向右扫,右刀的弧向左扫,两把刀的弧线在…
【游戏功能】 隔着半个屏幕扎草人,狼怪为什么跟着一抽一抽?咒怨娃娃的逻辑古老而瘆人:草人与目标结咒之后,草人就是它——针扎草…
【游戏功能】 雷云的全部机制就这一行:一朵乌云升到目标头顶,慢半拍地跟着挪,每一点二秒掉一道小雷。云不追人——它认的是"头顶…
【游戏功能】 跑赢了的怪,怎么反倒挨了烧?火焰冲刺的账目反直觉就在这:冲刺是位移,火径是遗产——人冲过去了,路留在原地烧三秒…