【语法】
一、抛坑提问:宠物跟随走直线太生硬,怎么走出圆滑弧线?二次贝塞尔曲线用两个端点加一个控制点,参数从 0 走到 1 逐帧采样即得平滑轨迹。
二、底层原理:二次贝塞尔按两端的平方、交叉的两倍乘与末端的平方加权三点;多段曲线首尾相接可拼更长路径,控制点决定弯曲方向。
三、正确代码:
错误写法。示例代码如下:
local function lerp(a, b, t)
return a + (b - a) * t -- 直线插值,轨迹生硬
end
正确写法。示例代码如下:
local function bezier(p0, p1, p2, t)
local u = 1 - t
return u * u * p0 + 2 * u * t * p1 + t * t * p2
end
local function trail(t)
local x = bezier(0, 50, 100, t)
local y = bezier(0, 80, 0, t)
sendmsg(actor, 1, "轨迹(" ..
math.floor(x) .. "," .. math.floor(y) .. ")")
end
trail(0.5) -- 中点恰在 (50,40)
四、引擎验证:参数从 0 到 1 采样 50 帧:直线版轨迹恒在连线上;贝塞尔版中点弧线经过控制点附近,帧间平滑无跳变。
五、FAQ:问:要更复杂曲线怎么办?答:三次贝塞尔加第二控制点,或分段拼接多段二次曲线。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏】 一、规则机制 一行定骨架:mask:setVisible(true) 先于一切加载动作。切图最怕"加载一半的半成品…
【游戏】 一、规则机制 线上事故:网络一抖直接踢回登录页,重新登录还要排队,火气全从这一脚踢出来。断线重连改温和路线:检测到…
【语法】 一、机制原理 抛个坑:界面配置十来个字段,只想改颜色一项,传入的覆盖表却把没写的字段全顶成 nil——直接拿覆盖表…
【游戏】 一、规则机制 一行定骨架:first = math.floor(offset / ROW_H)。千行列表建一千个节…
【语法】 一、机制原理 隐蔽的坑:给敏感词表去重,用了"排序后相邻比对"的老办法,重复是去掉了,原有优先级顺序也被打乱。去重…
【语法】 一、机制原理 隐蔽的坑:网格数据用 grid[x .. "_" .. y] 拼字符串键存取,写入顺手,可要遍历整张…