本章节属于游戏产业对 lua 扩展开发或者测试用,游戏产业是 lua 和 C++,回调都在 C++ 里,外部开发者没法遍历,推荐使用轻巧的 sublime 来开发 lua,另本文一些函数是根据游戏本身来定义的,用于其他的是一样的。

1. 管理插件

管理 1 个开发 lua 的游戏的插件,先构建结构,Main.lua 为第一个 lua,使用 require 函数把其他依赖的函数加载进来
简单用法介绍,下面不声明了:

require("helloworld")使用方式非常简单,加载1helloworld.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个。

//UtilGUIfuzhuplayerInfo后面声明
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 扩展开发插件简单介绍(下)


↙↙↙阅读原文可查看相关链接,并与作者交流