【语法】
一、隐蔽陷阱:技能范围绕施法者旋转,逐点手算坐标容易把余弦与正弦位置写反——二维旋转公式为新横等于旧横乘余弦减旧纵乘正弦,新纵反之。
二、底层原理:旋转矩阵两行四元素:绕中心旋转要先减中心坐标再旋转后加回;角度取弧度值,负角度即反向旋转。
三、正确代码:
错误写法。示例代码如下:
local function rotate(x, y, a)
return x * math.cos(a) + y * math.sin(a),
x * math.sin(a) - y * math.cos(a) -- 符号写反,镜像旋转
end
正确写法。示例代码如下:
local function rotate(cx, cy, x, y, a)
local dx, dy = x - cx, y - cy
local c, s = math.cos(a), math.sin(a)
return cx + dx * c - dy * s,
cy + dx * s + dy * c -- 绕中心旋转
end
local nx, ny = rotate(200, 200, 230, 200, 1.57)
sendmsg(actor, 1, "旋转后坐标 " .. nx .. "," .. ny)
四、引擎验证:30 格偏移点旋转 90 度 1000 次:符号反版转出镜像位;正确版落点与手算一致,误差小于 0.01。
五、FAQ:问:逆时针怎么转?答:角度取负值即反向旋转,公式不变。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏】 一、规则机制 一行定骨架:mask:setVisible(true) 先于一切加载动作。切图最怕"加载一半的半成品…
【游戏】 一、规则机制 线上事故:网络一抖直接踢回登录页,重新登录还要排队,火气全从这一脚踢出来。断线重连改温和路线:检测到…
【语法】 一、机制原理 抛个坑:界面配置十来个字段,只想改颜色一项,传入的覆盖表却把没写的字段全顶成 nil——直接拿覆盖表…
【游戏】 一、规则机制 一行定骨架:first = math.floor(offset / ROW_H)。千行列表建一千个节…
【语法】 一、机制原理 隐蔽的坑:给敏感词表去重,用了"排序后相邻比对"的老办法,重复是去掉了,原有优先级顺序也被打乱。去重…
【语法】 一、机制原理 隐蔽的坑:网格数据用 grid[x .. "_" .. y] 拼字符串键存取,写入顺手,可要遍历整张…