本章节属于游戏产业对 lua 扩展开发或者测试用,游戏产业是 lua 和 C++,回调都在 C++ 里,外部开发者没法遍历,推荐使用轻巧的 sublime 来开发 lua,另本文一些函数是根据游戏本身来定义的,用于其他的是一样的。
1. 管理插件
管理 1 个开发 lua 的游戏的插件,先构建结构,Main.lua 为第一个 lua,使用 require 函数把其他依赖的函数加载进来
简单用法介绍,下面不声明了:
require("helloworld")使用方式非常简单,加载1个helloworld.lua的代码块
先写 1 个 Main.lua 定义成员变量,管理插件其他自定义函数
其他自定义函数包含fuzhu.lua fuzhuplayerHp.lua fuzhuplayerInfo.lua 和UtilGUI.lua
2. Main.lua
require("fuzhu")
require("fuzhuplayerHp")
require("fuzhuplayerInfo")
--创建
function main()
TCreate()
end
--实体创建
function on_entity_game_stage()
main()
end
--同步窗体
function on_timer(seconds)
UpdatePane()
end
3. Fuzhu,lua
自定义函数的 TCreate() 的实现,main.lua 中的 require("fuzhu")
--关于collectgarbage内存回收根据个人需求来吧,如果脚本复制写多线程的,还是每个都加1个。
//UtilGUI和fuzhuplayerInfo后面声明
require("UtilGUI")
require("fuzhuplayerInfo ")
--创建控件
function TCreate()
local gui = nx_GetGui()
--判断是否可用
if not nx_IsValid(gui) then return end
local form_id = create_form (gui, "fuzhu",8,3,38,38,
" "," gui\\xxx.png")
--创建控件加入
local btn_close = create_button(gui,form_id,
"辅助","255,255,255,255",6,6,30,30,
"gui\\xxx.png")
--局部函数,用于退出
nx_AddCallBack(btn_close,"on_click"," fuzhuplayerInfo","on_form_z")
return form_id
end
--类实例
local nKG = 0
function on_form_z(btn)
local form_id = nx_GetForm("fuzhuplayerInfo")
--判断是否可用
if not nx_IsValid(form_id) then
fuzhuplayerHp()
return
end
if nKG == 0 then
nx_SetProp(form_id,"Visible",true)
nKG = 1
else
nx_SetProp(form_id,"Visible",false)
nKG = 0
end
end
TCreat 这个窗口页面就介绍到这里,后面还有 fuzhuplayerHp 和 fuzhuplayerInfo,见 Lua 扩展开发插件简单介绍(下)