界面的炫彩体验有一半来自特效:GUI:Effect_Create 把引擎特效挂到界面控件上,按钮的流光、面板的开场光效、VIP 图标的粒子环绕都是特效控件在工作。特效与动作系统、骨骼动画(SpineAnim)共同构成前端的表现三件套。
---创建特效 parent:父节点 ID:x/y:坐标 effectType/effectId:特效类型与ID sex/act/dir:角色动作参数
function GUI:Effect_Create(parent, ID, x, y, effectType, effectId, sex, act, dir) end
-- 领奖按钮的流光特效
local fx = GUI:Effect_Create(win, "awardFx", 130, 45, 0, 5101, 0, 0, 0)
GUI:Effect_play(fx)
-- 播完自动移除
GUI:Effect_setAutoRemoveOnFinish(fx, true)
特效按 effectType 与 effectId 引用特效资源库,挂载坐标定在控件体系的坐标系里。Effect_play 启动播放,setAutoRemoveOnFinish 让特效播完自动移除,一次性特效的清理自动化。特效的循环播放(光环类不设自动移除)与一次性播放(奖励类自动移除)是两种生命周期的范式。
-- 特效 + 动作:奖励图标的高光扫过
local icon = GUI:Image_Create(win, "awardIcon", 130, 60, "award.png")
local shine = GUI:Effect_Create(win, "shine", 130, 60, 0, 5202, 0, 0, 0)
GUI:Effect_play(shine)
local fade = GUI:ActionFadeIn(0.6)
icon:runAction(fade)
特效与动作的组合拳:图标淡入的同时高光扫过,动作系统(runAction 配 ActionFadeIn、ActionMoveTo、ActionScaleTo)管几何与透明度的动画,特效管粒子与光效,两层的叠加构成完整的奖励动效。骨骼动画 SpineAnim 是第三件套:角色与高阶动画(技能演示、宠物动作)用 Spine,控件的轻量表现用 Effect,表现的技术选型按复杂度分层。
同屏特效的数量监控,特效是渲染成本的大头,低端机的特效分级(数量与精度)是设置页的标配。
特效的资源加载是异步的,特效控件创建的瞬间可能还在加载,加载完成回调后再 play 的顺序问题踩过一轮。特效的循环播放泄漏(不设自动移除又不手动移除)在长驻界面里累积,特效的存量与界面生命周期的绑定要明确。
特效的 ID 分配表由表现侧统一管理,服务端推送的特效指令引用同一张表。特效的播放时机与业务事件的绑定在封装层做:领奖、升级、击杀的标准特效封装成函数,业务调用封装不直调接口。低端机的特效降级策略:特效数量减半与粒子密度降低的两级降级在设置页可配。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 战士的烈火剑法一击熄火后要等八秒冷却,连招断档感强烈。疾风烈火斩在烈火剑法命中后给一次连击窗口:三秒内再…
实战应用:用在哪里 阵营对抗打到中期容易疲软:打赢没有额外好处,输掉也没有代价。阵营声望体系给阵营战装上荣誉刻度:个人与阵营…
实战应用:用在哪里 拿下沙巴克之后呢?城主除了名字挂在城墙上,对城市毫无影响。城主施政玩法让占领变成治理:城主每周获得市政令…
实战应用:用在哪里 主线路光缆被挖断的深夜,全服掉线 20 分钟,玩家以为游戏倒闭。备用线路方案给接入层配第二条出口:主线路…
实战应用:用在哪里 行会官员由帮主任命的老模式弊端明显:任人唯亲、能上不能下。行会选举接口把官员换届做成投票制:每两个月一次…
实战应用:用在哪里 烈火剑法的伤害加成、冷却时间、下一级提升,全靠玩家记忆或去官网查。技能说明悬浮卡片在鼠标悬停技能图标零点…