【游戏功能】
追着你满场跑的狼怪,为什么绕过一根石柱就懵在原地?脱影的答案藏在柱子背后:视线被石柱掐断一秒二,它脑子里"你"这个字就糊了——从背后递的刀加五成,从正面撞破,仇照记。今天拆脱影,看"断视系"怎么把一根柱子,演成一座能藏人的迷宫。
一、贴柱、断视、背刺三段
脱影的循环三段。贴柱段:脚下一点,人贴着石柱绕行,人和狼怪之间隔出一根柱子的宽度——贴柱段是全技能的选址:哪根柱、绕哪边、狼怪的追线会怎么跟,三件事在出脚前都要算完,贴柱不是跑位,是下棋。断视段:柱子把两条视线压成断线,断线的秒数一格一格爬,爬满一点二秒,狼怪头顶冒出一枚黄色的大问号——断视段是全技能的奇迹时刻:满场追你的凶物,就因为隔了一根柱子,把你忘了。背刺段:绕到它背后的刀带着蓝光递出去,四十八点的"影袭"大字——背刺段是全技能的兑付:丢失视野的那几秒里,它背后是可以随便挑的,这一刀是整段绕柱的利息。三段的核心是"断线即忘":它不笨,它只是忠实地执行着"看不见就不追"的天条——柱子不是掩体,是给它下的遗忘咒。
完整演示在这,默认自动循环:
fx-blindspot
二、幂尔框架实现:遗忘是一条断满的表
脱影的账本就一条视线和一格秒表——
local BlindSpot = {}
local LOSE_TIME = 1.2 -- 断视一点二秒忘人
local BACK_MULT = 1.5 -- 背身刀加五成
local PILLAR = { x = 330, w = 26 }
local state = { lost = 0 }
local function sightBlocked()
local a = SL:GetValue("actorX", "self")
local b = SL:GetValue("actorX", "wolf")
return (a + 14 < PILLAR.x - PILLAR.w and b - 14 > PILLAR.x + PILLAR.w)
or (b + 14 < PILLAR.x - PILLAR.w and a - 14 > PILLAR.x + PILLAR.w)
end
function SL:OnTick(dt)
if sightBlocked() then
state.lost = state.lost + dt
if state.lost >= LOSE_TIME and state.lost - dt < LOSE_TIME then
SL:DropTarget("wolf") -- 脑子里的"你"糊了
SL:ShowMark("wolf", "?")
end
else
if state.lost >= LOSE_TIME then
SL:ShowTipAbove("self", "它又看见你了")
end
state.lost = 0 -- 视线一通,仇照记
end
end
function SL:BackStabBonus()
if state.lost >= LOSE_TIME then
return BACK_MULT, "#a5d6ff", "影袭"
end
return 1.0, "#e6edf3"
end
return BlindSpot
视线一通仇照记是全技能的骨气:lost 归零的瞬间它的仇恨原样回来——脱影不是消仇,是把仇按下暂停。
三、断视的演出规格
断线是全技能的琴弦:人和狼之间的那条视线在没被柱子挡时是虚线,被挡的一瞬虚线当场掐断——线的断与通,就是这场戏的幕布。问号是全技能的表情:黄色的大问号在它头顶一顿一顿地浮——问号比任何血条都传神,观众看见它就知道这只狼现在满脑子疑惑。背刺的蓝要冷:蓝光一刀、四十八点、"影袭"小标——冷色是影子的颜色,这一刀赢得安静,排面也要安静。它找人的小碎步要演:丢了目标之后它贴着柱子来回踱、脑袋一探一探——找人的踱步越认真,绕后的刀越有戏。撞破的瞬间问号变叹号:视线一通它先顿半帧、再炸一声红字——从懵到怒的换脸要干脆。
四、定价与三条影规
断视系的定价一句话:断视一点二、背刀加五成、视线通则仇归位——五成的刀是从它的遗忘里偷的,偷完它还认账。三条影规:其一,柱不认人——它看不见你,你也看不见它,脱影是双向的瞎,绕柱的时候谁都可能撞谁;其二,一刀醒梦——背刺落地的瞬间仇恨原样回来,影子只值一刀,贪第二刀的人用血条补票;其三,断视可累积——这一根柱子断零点六、那一根柱子断零点七,秒数分开记、账不合并,一根柱子的遗忘要一次断满。与隐身术对照着看:同是"让它看不见",隐身是把自己变没有——身子淡了它才瞎;脱影是拿东西挡自己——身子还在,只是被墙隔了,隐身系的两个门派在"变没"还是"被挡"上分了家。
五、断视系的地图学:一根柱子半张地图
脱影真正激活的是地图上的死物:没有这门功夫的时候,柱子是摆设;有了它,每一根柱子都是一圈可走的棋——绕哪边、断几秒、从哪头出来,地图突然长出了三条路和两种人生。老玩家进图先认柱:数清几根、量好间距、算好狼怪的追线——断视系的功课全在开打前,柱子认熟了,整张图都是自己的口袋。对观战者,问号浮起的一瞬是全场最欢乐的画面:一只凶物满腹疑惑地在柱子边打转,观众的笑声比背刺的数字先到。工程收尾记一笔:视线判定要用两侧的边缘各算一遍——中心点穿模不算挡、边缘擦柱就算挡的半吊子判定,是把这门功夫做砸的最快方式。最后留给数值组的一句话:五成对一点二秒,账面紧凑——断视系的收益在地形利用率里,柱子越多它越强,选图就是选武器。
脱影练到深处,柱子就不是柱子了:祭坛的石座、城墙的垛口、货场的大缸,凡是能隔断一条视线的东西都是柱——同一门功夫,在平地是绝路,在乱石场是主场。老玩家进新图先绕一圈,数的就是这些"能借的背"——图上瞎子越多,影子的家当越厚。
写完再留一句给做断视系的同学:脱身最容易做成"一段隐身时间",而它本该是一场借地形演的捉迷藏——线要断得清楚、问号要浮得传神、撞破要翻脸翻得快,柱子有了戏份,地图才不只是地图。
补一个演示彩蛋位:它丢了你之后,会在柱子另一侧你最后出现的位置多转半圈——多转的那半圈是它"我明明看见他了"的不甘心,观众笑了,你的刀也到了。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【语法算法】 上一版的炮台索敌逻辑有个隐蔽报错:炮台永远打同一个怪——即使那只怪已经死了,索敌的游标也不挪窝。追到底索敌的游…
【语法算法】 先抛一个坑:打不完的火系怪怎么办?火抗怪火打不动,换冰系技能要切装备要换面板——切完黄花菜都凉了。元素转换的答…
【语法算法】 上个月的事故复盘会上有个数字被念了三遍:四成——策划写的是"同伴陪疼四成",代码落下去成了"陪疼四十点",两只…
【语法算法】 单行代码拆解:弹射初速=-420——弹射的全部动力就这一行的负初速。负号朝上、四百二十是弹射的初速大小——踩上…
【语法算法】 上一版的减速类模块全按"乘以零点五"来写,帧率无关的版本照搬了这套写法——结果高帧率机上减速效果好,低帧率机上…
【语法算法】 先抛一个坑:怎么把散在四处的怪聚到一起打?逐个拉是笨办法,一个范围技又只能打一片——引力球的答案是一个会动的吸…