
lua从0到会 第五课table表
这堂专为零基础学员打造的 Lua 表(table)课程,就像...
LOADING
以下是本节课的核心内容总结:
UI.BG1
函数返回闭包,捕获外部变量(如title
),实现动态UI模板生成。NPC.lua
、UI.lua
),通过include
引入。-- UI.lua function UI.BG1(title) return function(actor) return string.format([[<image x=100 y=50 img="bg.png"><text>%s</text>]], title) end end
local vid = actor:getItemByPos(1) -- 获取武器唯一ID local stars = actor:getItemInfo(vid, "stars") -- 获取星级 actor:setItemInfo(vid, "stars", stars + 1) -- 升星
actor:refreshItem(vid)
更新物品显示。NPC.main
统一处理,根据npcID
调用不同功能(强化/合成)。...
)和table.concat
动态拼接参数:function NPC.call(funcName, ...) local args = table.concat({...}, ",") _G[funcName](actor, args) -- 调用全局函数 end
RELESE_print
打印中间值,如RELESE_print("NPC ID:", npcID)
。type()
验证参数类型,避免数字/字符串混淆(新三端严格区分)。title
未正确捕获。vid
。getItemByPos
获取vid
,再操作星级属性。refreshItem
调用,手动触发界面重绘。upgradeItem
函数,集成升星+刷新逻辑。-- Player类封装 function Player:new(actor) local obj = { actor = actor } setmetatable(obj, self) self.__index = self return obj end function Player:upgradeWeapon() -- 升星逻辑 end
function NPC.call(funcName, ...) local func = _G[funcName] if not func then RELESE_print("函数不存在:", funcName) return end func(actor, ...) end
-- Const.lua local Const = { NPC_STRENGTHEN = 226, UI_BG1 = "public/bg_750x400.png" } return Const
local
缓存高频API(如getItemInfo
)。layout
编辑,实现星级动画特效。public
目录共享素材,减少重复加载。通过本节课,你已掌握闭包模块化和新三端API适配的关键技巧,后续可灵活应用于任务、商店等系统开发。